#include <stdio.h>
#include <string.h>
char a[21010];
char b[21010];
int c[21010];
int len ,left ,right ;
int sum = -1 ,fron ,belo ;
void tran(char a ,int i)
{
if((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z'))
{
if(a > 'Z') b[len] = a - 32;
else b[len] = a;
c[len] = i;
len ++;
}
else return;
}
void huiwen()
{
int i ;
for(i = 0;i < len;i++)
{
if(b[i]!=b[i+1])
{
left = i - 1 ;
right = i + 1;
}
else
{
left = i - 1;
right = i + 2;
}
while(1)
{
if(left < 0 ||right > len - 1) break;
if(c[right] - c[left] >= 2000||b[left]!=b[right]) break;
if(b[left]==b[right]) left-- , right++;
}
if(right - left - 2 > sum )
{
sum = right - left - 2;
fron = left + 1;
belo = right - 1;
}
}
}
int main()
{
int i ;
int k = 0;
char ch ;
while((ch = getchar())!=EOF)
{
a[k++] = ch;
}
len = 0;
for(i = 0;i < k;i++)
tran(a[i] ,i );
huiwen();
printf("%d\n",sum + 1);
for(i = c[fron];i <= c[belo];i++)
printf("%c",a[i]);
printf("\n");
return 0;
}
#include <string.h>
char a[21010];
char b[21010];
int c[21010];
int len ,left ,right ;
int sum = -1 ,fron ,belo ;
void tran(char a ,int i)
{
if((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z'))
{
if(a > 'Z') b[len] = a - 32;
else b[len] = a;
c[len] = i;
len ++;
}
else return;
}
void huiwen()
{
int i ;
for(i = 0;i < len;i++)
{
if(b[i]!=b[i+1])
{
left = i - 1 ;
right = i + 1;
}
else
{
left = i - 1;
right = i + 2;
}
while(1)
{
if(left < 0 ||right > len - 1) break;
if(c[right] - c[left] >= 2000||b[left]!=b[right]) break;
if(b[left]==b[right]) left-- , right++;
}
if(right - left - 2 > sum )
{
sum = right - left - 2;
fron = left + 1;
belo = right - 1;
}
}
}
int main()
{
int i ;
int k = 0;
char ch ;
while((ch = getchar())!=EOF)
{
a[k++] = ch;
}
len = 0;
for(i = 0;i < k;i++)
tran(a[i] ,i );
huiwen();
printf("%d\n",sum + 1);
for(i = c[fron];i <= c[belo];i++)
printf("%c",a[i]);
printf("\n");
return 0;
}