#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string sortString(const string& input) {
// 提取字母字符及其原始位置
vector<pair<char, size_t>> letters;
for (size_t i = 0; i < input.size(); ++i) {
if (isalpha(input[i])) {
letters.emplace_back(input[i], i);
}
}
// 排序字母字符(不区分大小写)
sort(letters.begin(), letters.end(), [](const pair<char, size_t>& a,
const pair<char, size_t>& b) {
char lowerA = tolower(a.first);
char lowerB = tolower(b.first);
if (lowerA != lowerB) {
return lowerA < lowerB; // 按字母顺序排序
} else {
return a.second < b.second; // 保持输入顺序
}
});
// 重新构建字符串
string result = input;
size_t letterIndex = 0;
for (char & i : result) {
if (isalpha(i)) {
i = letters[letterIndex++].first;
}
}
return result;
}
int main() {
string input;
getline(cin, input);
cout<<sortString(input);
}
// 64 位输出请用 printf("%lld")