#include <iostream>
using namespace std;
// 结构体越用越爽,简单无脑,且不用函数
typedef struct {
string s; // 记录大小写顺序
int count; // 记录个数
}S;
int main() {
string s;
while (getline(cin, s)) {
S t[26]; // 下标对应字母
for (int i = 0; i < 26; i++) t[i].count = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] <= 'z' && s[i] >= 'a') {
t[s[i] - 'a'].count++;
t[s[i] - 'a'].s += '0';
}
else if (s[i] >= 'A' && s[i] <= 'Z') {
t[s[i] - 'A'].count++;
t[s[i] - 'A'].s += '1';
}
}
int j = 0, k = 0;
for (int i = 0; i < s.size(); i++) {
if ((s[i] <= 'z' && s[i] >= 'a') || (s[i] >= 'A' && s[i] <= 'Z')) {
while (t[j].count == 0) {
j++;
k = 0; //count = 0说明是下一个字母了,所以k要为0
}
if ((t[j].s)[k] == '0') printf("%c",j + 'a');
if ((t[j].s)[k] == '1') printf("%c", j + 'A');
t[j].count--;
k++;
}
else {
cout << s[i];
}
}
cout << endl;
}
}