#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef double DD;
const int N = 11e6 + 10;
int len[N*2],llen;
char s0[N],s[N*2];
int main()
{
scanf("%s", s0);
s[0]='~';
llen=strlen(s0);
for(int i=1;i<=2*llen+1;i++)
{
if(i%2==1)
s[i]='|';
else
s[i]=s0[i/2-1];
}
int right=0,pos=0,ans=0;
for(int i=1;i<=2*llen+1;i++)
{
if(i<=right)
len[i]=min(2*pos-i,right-i+1);
while(s[i-len[i]]==s[i+len[i]])
len[i]++;
if(len[i]+i-1>right)
{
right=len[i]+i-1;
pos=i;
}
if(len[i]>ans)
ans=len[i];
}
cout<<ans-1<<endl;
return 0;
}
求好心人指点