考查点:dp,最长回文串
#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <stack>
#define FOR(i, x, y) for(int i = x; i <= y; i++)
#define rFOR(i, x, y) for(int i = x; i >= y; i--)
#define MAX 220
#define oo 0x3f3f3f3f
using namespace std;
char str[1010];
int dp[1010][1010];
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
gets(str);
int len=strlen(str);
int ans=1;
FOR(i,0,len-1)
{
dp[i][i]=1;
if(i<len-1){
if(str[i]==str[i+1]){
dp[i][i+1]=1;
ans=2;
}
}
}
FOR(i,3,len)
{
for(int j=0;j+i-1<len;j++)
{
int r=j+i-1;
if(str[j]==str[r]&&dp[j+1][r-1]==1){
dp[j][r]=1;ans=i;
}
}
}
cout<<ans<<endl;
return 0;
}