#include <bits/stdc++.h>
using namespace std;

inline int read()
{
	int x=0,f=1,c=getchar();
	while(c<48) c=='-'&&(f=-1),c=getchar();
	while(c>47) x=x*10+c-'0',c=getchar();
	return x*f;
}

const int MAXN = 25000005;
char s[MAXN],t[MAXN];
int f[MAXN],n,ans;

inline void manacher()
{
	for(int i=1,mr=1,mid=0; i<=n; ++i)
	{
		f[i]=i<mr?min(f[mid+mid-i],mr-i):1;
		while(s[i+f[i]]==s[i-f[i]]) ++f[i];
		if(i+f[i]>mr) mr=i+f[i],mid=i;
	}
}

int main(int argc, char const *argv[])
{
	scanf("%s",t+1); n=strlen(t+1);
	s[0]='/'; s[1]='#';
	for(int i=1; i<=n; ++i)
		s[i<<1]=t[i],s[i<<1|1]='#';
	n=n<<1|1; s[n+1]='\\'; manacher();
	for(int i=1; i<=n; ++i) ans=max(ans,f[i]);
	printf("%d\n", ans-1);
	return 0;
}