#include <bits/stdc++.h>
using namespace std;
const int N = 22000002;
int n,P[N<<1];
char a[N],S[N<<1];
void change()
{
n = strlen(a);
int k = 0;
S[k++] = '$',S[k++] = '#';
for(int i = 0; i < n; i++)
S[k++] = a[i] , S[k++] = '#';
S[k++] = '&';
n = k;
}
void manacher()
{
int R = 0, C;
for(int i = 1; i < n; i++)
{
if(i < R)
P[i] = min(P[(C<<1) - i],P[C + P[C] - i]);
else
P[i] = 1;
while(S[i+P[i]] == S[i-P[i]])
P[i]++;
if(i + P[i] > R)
{
R = i + P[i];
C = i;
}
}
}
int main()
{
cin >> a;
change();
manacher();
int ans = 1;
for(int i = 0; i < n; i++)
ans = max(ans,P[i]);
cout << ans - 1 << '\n';
return 0;
}