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