#include <iostream>
#include <cstring>
using namespace std;
const int N = 1010;
char str[N];
int dp[N][N];
int main() {
//patzjujztaccbcc
scanf("%s", str);
int len = strlen(str), ans = 1;
memset(dp, 0, sizeof(dp));
//先计算长度为2的字串
for (int i = 0; i < len; i++) {
dp[i][i] = 1; //只有自己
if (i < len - 1) {
if (str[i] == str[i+1]) {
dp[i][i+1] = 1; //和后面一个相同
ans = 2; //长度为2
}
}
}
//从L到len计算最长回文子串
for (int l = 3; l <= len; l++) {
for (int i = 0; i + l - 1 < len; i++) {
int r = l - 1 + i; //右端点
if (str[i] == str[r]) {
dp[i][r] = 1;
ans = l;
}
}
}
printf("%d\n", ans);
return 0;
}