#include <iostream>
#include <cstring>
#include <cstdlib>
#include <stdio.h>
#include <string>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define maxn 110100
int p[*maxn];
char s[*maxn];
void manacher(char *s){
int n=strlen(s);
for(int i=n;i>=;i--){
s[*i+]=s[i];
s[*i+]='#';
}
s[]='*';
int mx=;
int id;
int ans=;
for(int i=;i<*n+;i++){
if(mx>i)
p[i]=min(p[*id-i],mx-i);
else
p[i] = ;
for(;s[i+p[i]]==s[i-p[i]];p[i]++) ;
if(p[i]+i>mx){
mx=p[i]+i;
id=i;
}
ans=max(p[i],ans);
}
printf("%d\n",ans-);
}
int main()
{
while(scanf("%s",s)!=EOF){
manacher(s);
}
return ;
}