#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string str;
cin >> str;
int len = str.size();
vector<vector<int> >dp(len, vector<int>(len, 0));
//边界条件 长度为1 或者长度为2 的状态
int ans=0;
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;
}
}
for (int l = 3; l <= len; ++l)
{
for (int i = 0; i + l - 1 < len; ++i)
{
int j = i + l - 1;
if (str[i] == str[j]&& dp[i + 1][j - 1] == 1)
{
dp[i][j] = 1;
ans = l;
}
}
}
cout << ans << endl;
system("pause");
return 0;
}