#include<bits/stdc++.h>
using namespace std;
char a[3000];
int main(){
scanf("%s",a);
int len=strlen(a);
int flag1=0,flag2=0;
//flag1处理‘abba’情况
//flag2处理‘ababa’情况
int sum1=0,sum2=0,num=1;
//num存取最大长度
for(int i=1;i<len;i++){
//遍历数组,从第i个数向两边扩散,判断是否有为回文
if(a[i]==a[i+1])flag1=1,sum1+=2;//满足‘abba’情况
if(a[i-1]==a[i+1])flag2=1,sum2++;//满足‘ababa’情况
if(flag1)
for(int j=1;j<=i&&i+j+1<len;j++){
if(a[i-j]==a[i+j+1])sum1+=2;
else break;
}flag1=0;
num=max(sum1,num);sum1=0;
if(flag2)
for(int j=1;j<=i&&j+i<len;j++){
if(a[i-j]==a[i+j])sum2+=2;
else break;
}flag2=0;
num=max(num,sum2);sum2=0;
//在‘aaaaa’时两种情况都会发生,都需要考虑
}
cout<<num;
return 0;
}