#include<stdio.h>
#include<string.h>
char v[1000001],alf[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
void sterge(long i,long &n)
{
int j;
for(j=i;j<n;j++)
v[j]=v[j+1];
n--;
}
void insereaza(long copie,long j,long &n)
{
int i;
for(i=++n;i>j;i--)
v[i]=v[i-1];
v[j]=copie;
}
int main()
{
long n,i,elm,j,copie;
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
gets(v);
n=strlen(v);
elm=strlen(alf);
for(i=0;i<=n-1;i++)
for(j=0;j<=elm;j++)
if(v[i]==alf[j])
{
v[i]=j;
break;
}
int aux,sortat;
do
{
sortat=1;
for(i=0;i<=n-2;i++)
if(v[i]>v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
sortat=0;
}
}
while(sortat==0);
do
{
sortat=1;
for(i=0;i<=n-2 && sortat;i++)
if(v[i]==v[i+1])
for(j=i+2;j<=elm+1;j++)
if(v[j]!=v[i])
{
copie=v[i];
sterge(i,n);
insereaza(copie,j,n);
sortat=0;
break;
}
}
while(sortat==0);
for(i=0;i<=n-1;i++)
printf("%c",alf[v[i]]);
fcloseall();
return 0;
}