QAQ
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
const int N=11000010;
int l=1,t,r,mid,maxx=-1,palin[N]; char c,a[N];
int main()
{
a[0]='',a[1]='|'; c=getchar();
while(c<'a'||c>'z') c=getchar();
while(c>='a'&&c<='z') a[++l]=c,a[++l]='|',c=getchar();
for(t=1;t<=l;t++)
{
if(t<=r) palin[t]=min(palin[(mid<<1)-t],r-t+1);
while(a[t-palin[t]]==a[t+palin[t]]) palin[t]++;
if(palin[t]+t>r) r=palin[t]+t-1,mid=t;
maxx=max(maxx,palin[t]);
}
printf("%d",maxx-1);
return 0;
}