#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;

struct Item {
    int index;
    char c;
    int num;
};

int main() {
    string line;
    getline(cin, line);
    int length = line.size();
    vector<Item> list = vector<Item>(length);


    for (int i = 0; i < length; i++) {
        list[i].c = line[i];
        list[i].index = i;
        list[i].num = toupper(line[i]);
    }

    for (int i = 0; i < length; i++) {
        if (!isalpha(list[i].c))
            continue;

        for (int j = i + 1; j < length; j++) {
            if (!isalpha(list[j].c))
                continue;
            int a = list[i].num;
            int b = list[j].num;
            int a_idx = list[i].index;
            int b_idx = list[j].index;
            Item tmp;
            if (a > b || (a == b && a_idx > b_idx)) {
                tmp = list[j];
                list[j] = list[i];
                list[i] = tmp;
            }

        }
    }

    for (auto c : list)
        cout << c.c;


    cout << endl;


    return 0;
}