#include<cstdio>#include<cstring>#include<algorithm>#pragma warning(disable:4996)usingnamespace std;template<class_Ty>inline _Ty manacher(constchar*const s, _Ty*const d1, _Ty*const d2){
_Ty i, k, l, r, L =strlen(s +1), Lm =0;for(i =1, l =1, r =0; i <= L;++i){
k =(i > r)?1:min(d1[l + r - i], r - i);while(i - k >0&& i + k <= L && s[i - k]== s[i + k])++k;
d1[i]= k;--k; Lm =max(Lm, d1[i]*2-1);if(i + k > r){ l = i - k; r = i + k;}}for(i =1, l =1, r =0; i <= L;++i){
k =(i > r)?0:min(d2[l + r - i +1], r - i +1);while(i - k -1>0&& i + k <= L && s[i - k -1]== s[i + k])++k;
d2[i]= k;--k; Lm =max(Lm, d2[i]*2);if(i + k > r){ l = i - k -1; r = i + k;}}return Lm;}constunsigned lmax =110002;char s[lmax];unsigned d1[lmax], d2[lmax];intmain(){for(;;){if(scanf("%s", s +1)==EOF)return0;printf("%u\n",manacher(s, d1, d2));}}