S = input() N = len(S) T = S[::-1] E = [[i+1] for i in range(N)] for i in range(N): for j in range(2, N - i + 1): if S[i:i + j] == T[N - i - j:N - i]: E[i].append(i + j) 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])