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)