//KY75 字符串排序
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
string s;
int main()
{
    while(getline(cin,s))
    {
        vector<char>v[26];
        for(int i=0;i<s.size();i++){
            if(s[i]>='a'&&s[i]<='z'){
                v[s[i]-'a'].push_back(s[i]);
            }
            else if(s[i]>='A'&&s[i]<='Z'){
                v[s[i]-'A'].push_back(s[i]);
            }
        }
        string res="";
        for(int i=0;i<26;i++){
            for(int j=0;j<v[i].size();j++) res+=v[i][j];
        }
        int k=0;
        for(int i=0;i<s.size();i++){
            if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){
                s[i]=res[k++];
            }
            if(k==res.size()) break;
        }
        cout<<s<<'\n';
    }
}