#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
string str;
vector<char> vec;
int m = 0;//vec的索引变量
while(cin >> str){
int len = str.size();
for(int i = 0; i < 26; i++){
for(int j = 0; j < len; j++){
if(tolower(str[j])-'a' == i){
if(tolower(str[j]) >= 'a' && tolower(str[j]) <='z'){
vec.push_back(str[j]);
}
}
}
}
for(int k = 0; k < len; k++){
if(tolower(str[k]) >= 'a' && tolower(str[k]) <='z'){
str[k] = vec[m];
m++;
}
}
//输出
for(int i = 0; i < len; i++){
cout<<str[i];
}
cout << endl;
}
}
#include <string>
#include <vector>
using namespace std;
int main(){
string str;
vector<char> vec;
int m = 0;//vec的索引变量
while(cin >> str){
int len = str.size();
for(int i = 0; i < 26; i++){
for(int j = 0; j < len; j++){
if(tolower(str[j])-'a' == i){
if(tolower(str[j]) >= 'a' && tolower(str[j]) <='z'){
vec.push_back(str[j]);
}
}
}
}
for(int k = 0; k < len; k++){
if(tolower(str[k]) >= 'a' && tolower(str[k]) <='z'){
str[k] = vec[m];
m++;
}
}
//输出
for(int i = 0; i < len; i++){
cout<<str[i];
}
cout << endl;
}
}