S=input() ok=[[False for _ in range(len(S))] for _ in range(len(S))] for i in range(len(S)): for j in range(i,len(S)): Len=(j-i+1)//2 s=S[i:j+1] if S[i:j+1]==s[::-1]: ok[i][j]=True def okey(mid): dp=[False for _ in range(len(S)+1)] dp[len(S)]=True for i in range(len(S)): if dp[i-1]: for d in range(mid-1,len(S)-i): if ok[i][i+d]: dp[i+d]=True if dp[len(S)-1]: return True return False left,right=1,len(S) while right-left>1: mid=(left+right)//2 if okey(mid): left=mid else: right=mid print(left)