#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);
    }
}