#include<stdio.h>
#include<string.h>
int l,lg,i,j;
int best(char p[200],char q[2010]);
int move();
int newsol();
char a[200],nul[10],b[200][5],a1[200][200],a2[200][200],a3[200][200],aux1[200],aux2[200],aux3[200],sol[200];
int main()
{
FILE *f,*g;
f=fopen("elimin2.in","r");
g=fopen("elimin2.out","w");
fgets(a,2010,f);
l=strlen(a)-1;
for(i=0;i<l;i++)
{a2[i][0]=a[i];strcpy(b[i],a2[i]);}
for(lg=1;lg<l;lg++)
{ for(i=0;i+lg<l;i++)
{ strcpy(aux1,a2[i]);
strcpy(aux2,a2[i+1]);
strcpy(aux3,nul);
if(a[i]==a[i+lg])
{ strcat(aux3,b[i]);strcat(aux3,a1[i+1]);strcat(aux3,b[i]);}
if(best(aux1,aux2))
{ if(best(aux1,aux3)) strcpy(a3[i],aux1);
else strcpy(a3[i],aux3);}
else
{ if(best(aux2,aux3)) strcpy(a3[i],aux2);
else strcpy(a3[i],aux3);}
newsol();
}
move();
}
fprintf(g,"%s\n",sol);
fcloseall();
return 0;
}
int best(char p[200],char q[200])
{
if(strlen(p)>strlen(q)) return 1;
if(strlen(p)<strlen(q)) return 0;
if(strcmp(p,q)>0)return 1;
return 0;
}
int move()
{
for(j=0;j<=i+2;j++)
{strcpy(a1[j],a2[j]);
strcpy(a2[j],a3[j]);}
return 0;
}
int newsol()
{
if(strlen(a3[i])<strlen(sol)) return 0;
if(a3[i][0]=='0') return 0;
if(strlen(a3[i])>strlen(sol)){ strcpy(sol,a3[i]);return 0;}
if(strcmp(a3[i],sol)>0) { strcpy(sol,a3[i]);return 0;}
return 0;
}