S = input() N = len(S) T = S[::-1] E = [[] for _ in range(N)] l = 0 for r in range(1, N + 1): r2 = r; l2 = l while r2 - l2 > 0: if S[l2:r2] == T[N - r2:N - l2]: while r2 - l2 > 0: E[l2].append(r2) l2 += 1; r2 -= 1 l2 += 1; r2 -= 1 r = N for l in range(1, N): r2 = r; l2 = l while r2 - l2 > 0: if S[l2:r2] == T[N - r2:N - l2]: while r2 - l2 > 0: E[l2].append(r2) l2 += 1; r2 -= 1 l2 += 1; r2 -= 1 dp = [0] * (N + 1) dp[0] = N for i in range(N): for j in E[i]: dp[j] = max(dp[j], min(dp[i], j - i)) print(dp[N])