#include<bits/stdc++.h>
using namespace std;
string ans,s_y,s_sr,s_x;
int ans_cd,ans_zxb,ans_yxb;
char dzx(char c){
if(c>='A'&&c<='Z'){
return c+'a'-'A';
}
return c;
}
int main(){
while(getline(cin,s_sr)){
s_y+=s_sr;
s_y+='\n';
}
for(int i=0;i<s_y.size();i++){
s_x+=dzx(s_y[i]);
}
for(int i=1;i<s_x.size();i++){
if(s_x[i]!=s_x[i+1])
break;
int cd=2,zxb=i-1,yxb=i+2;
for(;;zxb--,yxb++){
while(!(s_x[zxb]>='a'&&s_x[zxb]<='z')){
zxb--;
if(zxb<=0){
break;
}
}
while(!(s_x[yxb]>='a'&&s_x[yxb]<='z')){
yxb++;
if(yxb>=s_x.size()){
break;
}
}
if(s_x[zxb]==s_x[yxb]){
cd+=2;
}else{
break;
}
if(ans_cd<cd){
ans_cd=cd;
ans_zxb=zxb;
ans_yxb=yxb;
}
}
}
for(int i=1;i<s_x.size();i++){
int cd=1,zxb=i-1,yxb=i+1;
for(;;zxb--,yxb++){
while(!(s_x[zxb]>='a'&&s_x[zxb]<='z')){
zxb--;
if(zxb<=0){
break;
}
}
while(!(s_x[yxb]>='a'&&s_x[yxb]<='z')){
yxb++;
if(yxb>=s_x.size()){
break;
}
}
if(s_x[zxb]==s_x[yxb]){
cd+=2;
}else{
break;
}
if(ans_cd<cd){
ans_cd=cd;
ans_zxb=zxb;
ans_yxb=yxb;
}
}
}
cout<<ans_cd<<"\n";
for(int i=ans_zxb;i<=ans_yxb;i++){
cout<<s_y[i];
}
return 0;
}
WA on #3