#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int n,p[11000005],pos=0,mr=0,maxn=0;
char s[11000005],c[11000005];
int main(){
cin>>s;
n=strlen(s);
c[0]='@';
for(int i=0;i<n;i++){
c[i*2+1]=s[i];
c[i*2+2]='#';
}
n=n*2;
for(int i=1;i<=n;i++){
int j=pos*2-i;
if(i<mr)
p[i]=min(mr-i+1,p[j]);
while(c[i-p[i]]==c[i+p[i]])
p[i]++;
if(i+p[i]-1>mr)
mr=i+p[i]-1,pos=i;
maxn=max(maxn,p[i]);
}
cout<<maxn;
return 0;
}