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