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