#include<stdio.h>
#include<string.h>
typedef struct Info
{
int order;
char c;
int value;
}Info;
void exchange(Info *a, Info *b)
{
Info tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
char str[1000];
gets(str);
int len = strlen(str);
Info ch[1000];
for(int i=0; i<len; i++)
{
ch[i].order = i;
ch[i].c = str[i];
if( isalpha(str[i]) )
ch[i].value = (str[i]-'A') % ('a'-'A');
else
ch[i].value = -2;
}
for(int i=0; i<len-1; i++)
{
for(int j=i+1; j<len; j++)
{
if(ch[i].value != -2 && ch[j].value != -2)
{
if(ch[i].value > ch[j].value)
exchange(&ch[i], &ch[j]);
else if(ch[i].value == ch[j].value)
{
if(ch[i].order > ch[j].order)
exchange(&ch[i], &ch[j]);
}
}
}
}
for(int i=0; i<len; i++)
{
printf("%c", ch[i].c);
}
}