#include 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]=imr) 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; }