def _solve(ss):
    """处理问题逻辑"""
    s = list(ss)
    n = len(s)
    q,r = divmod(n,2)
    #需要判断奇数还是偶数
    #1.奇数位不可能是双生数,要变成11,1100,110011的情况
    if r:
        return "".join(  [ "00" if i%2 else "11" for i in range(q+1) ])
    #2.偶数位的处理
    else:
        i=0
        flag=False
        while i<n:
            if s[i]!=s[i+1]:
                if s[i]>s[i+1]:
                    s[i+1]=s[i]
                else:
                    s[i]=s[i+1]=f"{int(s[i])+1}"
                if i<2 or s[i]!=s[i-1]:
                    break
            if i>1 and s[i]==s[i-1]:                    
                t = int(s[i])
                if t<9:
                    s[i]=s[i+1]=str(t+1)
                else:
                    flag = True #flag表示是否有两个连续的99区间,要单独进行处理
                    while(i>=0 and s[i]=='9' or i>0 and s[i]>'7' and s[i-1]>'8'):
                        i-=2
                break
            i+=2
        s[i+2:] =   [ "11" if i%2 else "00" for i in range(n-i-2>>1) ]
        if flag:
            ti = int(s[i])
            if i<0:
                s=["11"]+s
            elif i>0:
                tmp = set('123456789')-set(map(str,range(ti)))-set(s[i-1])-set(s[i])
                s[i]=s[i+1] = min(tmp)
            else:
                s[i]=s[i+1] = str(ti+1)  
        return "".join(s)

        
def solve(s):
    """调用处理逻辑func,输出返回结果"""
    res = _solve(s)
    print(res)


# INPUTS="1233"
INPUTS=input()
solve(INPUTS)