#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;
}