//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';
}
}