/* ID: zhangzz4 PROG: calfflac LANG: C++ */ #include<stdio.h> #include<string.h> #include<stdlib.h> const int N=21011; char str[N],s[N]; int idx[N]; int ok(int i,int j) { for(;i<j;i++,j--) if(s[i]!=s[j]) return 0; return 1; } int main() { freopen("calfflac.in","r",stdin); freopen("calfflac.out","w",stdout); int c; int len=0; while((c=getchar())!=-1) { str[len++]=c; } str[len]=0; int n=0; for(int i=0;i<len;i++) if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z') { char c=str[i]; if(c>='a'&&c<='z') c=c-'a'+'A'; s[n]=c; idx[n++]=i; } s[n]=0; int mst=0,med=0; int low=1,high=n/2+1,mid; while(low+1<high) { int mid=low+high>>1; int flag=0; for(int i=0;i+mid*2-1<n;i++) if(ok(i,i+mid*2-1)) { flag=1; mst=i; med=i+mid*2-1; break; } if(flag) low=mid; else high=mid; } int ans1=low*2; low=1,high=n/2+1; while(low+1<high) { int mid=(low+high>>1); int flag=0; for(int i=0;i+mid*2+1-1<n;i++) if(ok(i,i+mid*2+1-1)) { flag=1; if(mid*2+1>ans1) { ans1=mid*2+1; mst=i; med=i+mid*2; } break; } if(flag) low=mid; else high=mid; } printf("%d/n",ans1); for(int i=idx[mst];i<=idx[med];i++) putchar(str[i]); puts(""); }