#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 51000100;
int ans, len, cnt[maxn];
char s[maxn<<1], a[maxn];
void manacher(){
int mid, maxx = 0;
for(int i=1; i<len; i++){
if(i < maxx)
cnt[i] = min(cnt[(mid<<1)-i], cnt[mid]+mid-i);
else cnt[i] = 1;
for(; s[i+cnt[i]] == s[i-cnt[i]]; cnt[i]++);
if(cnt[i] + i > maxx){
maxx = cnt[i] + i;
mid = i;
}
}
}
void change(){
s[0] = s[1] = '#';
for(int i=0; i<len; i++){
s[i*2 + 2] = a[i];
s[i*2 + 3] = '#';
}
len = len*2 + 2;
s[len] = 0;
}
int main(){
scanf("%s", a);
len = strlen(a);
change();
manacher();
ans = 1;
for(int i=0; i<len; i++)
ans = max(ans, cnt[i]);
printf("%d\n", ans - 1);
return 0;
}