#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define rop(i,a,b) for(int i=a;i<b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
#define por(i,a,b) for(int i=a;i>b;i--)
#define endl '\n'
#define pii pair<int,int>
#define fi first
#define se second
typedef long long ll;
typedef unsigned long long ull;
typedef double lf;
typedef long double ld;
using namespace std;
int cnt,p[22000005],mid,mr,ans;
string s,dat;
signed main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>s;
s=" "+s;
dat[++cnt]='~';
dat[++cnt]='#';
rep(i,1,s.size()){
dat[++cnt]=s[i];
dat[++cnt]='#';
}
dat[++cnt]='!';
rep(i,2,cnt-1){
if(i<=mr)
p[i]=min(p[mid*2-i],mr-i+1);
else
p[i]=1;
while(dat[i-p[i]]==dat[i+p[i]])
p[i]++;
if(i+p[i]>mr){
mr=i+p[i]-1;
mid=i;
}
ans=max(ans,p[i]);
}
cout<<ans-1;
return 0;
}