O(n)
#include<bits/stdc++.h>
using namespace std;
const int N=11000005;
string s;
char a[N*2];
int p[N*2],n,ans=-114514;
void init(){
int k=0,sl=s.size();
a[k++]='@';
a[k++]='#';
for(int i=0;i<sl;i++){
a[k++]=s[i];
a[k++]='#';
}
a[k++]='&';
n=k;
}
void manacher(){
int r=0,c;
for(int i=1;i<n;i++){
if(i<r) p[i]=min(p[c*2-i],r-i);
else p[i]=1;
while(a[i+p[i]]==a[i-p[i]])p[i]++;
if(p[i]+i>r){
r=p[i]+i;
c=i;
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>s;
init();
manacher();
for(int i=0;i<n;i++)ans=max(ans,p[i]);
cout<<ans-1;
return 0;
}