#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn=1e6+5;
char s[maxn*2],str[maxn*2];
int Len[maxn*2],len;
void getstr(){
int k=0;
str[k++]='@';
for(int i=0;i<len;i++)
str[k++]='#',
str[k++]=s[i];
str[k++]='#';
len=k;
str[k]=0;
}
void manacher(){
int mx=0,id;
for(int i=1;i<len;i++){
if(mx>i) Len[i]=min(Len[2*id-i],mx-i);
else Len[i]=1;
while(str[i+Len[i]]==str[i-Len[i]])
Len[i]++;
if(Len[i]+i>mx)
mx=Len[i]+i,id=i;
}
}
int main(){
scanf("%s",s);
len=strlen(s);
getstr();
manacher();
int ans=1;
for(int i=1;i<len;i++) ans=max(ans,Len[i]);
printf("%d\n",ans-1);
return 0;
}