#include<bits/stdc++.h>
using namespace std;
const int N=1.1e7+5;
char rS[N];
char S[N<<1];
int P[N<<1],n;
void init(){
n=strlen(rS);
int k=0;
S[k++]='$';S[k++]='#';
for(int i=0;i<n;i++){
S[k++]=rS[i];
S[k++]='#';
}
S[k++]='&';
n=k;
}
int manacher(){
int ans=1,mx=0,mxid=0;
for(int i=1;i<n;i++){
if(i<mx)P[i]=min(mx-i,P[2*mxid-i]);
else P[i]=1;
while(S[i+P[i]]==S[i-P[i]])P[i]++;
if(P[i]+i>mx)mx=P[i]+i,mxid=i;
ans=max(ans,P[i]);
}
return ans-1;
}
signed main(){
scanf("%s",rS);
init();
printf("%d",manacher());
return 0;
}