#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
using namespace std;
int main() {
string s;
getline(cin, s);
vector<int> v(36, 0);
for (auto c : s) {
if (isalpha(c)) {
v[c - 'a' + 10]++;
} else {
v[c - '0']++;
}
}
vector<pair<int, int>> v2;
for (int i = 0; i < 36; ++i) {
if (v[i] > 0) v2.emplace_back(i, v[i]);
}
//按出现次数排序,若出现次数相同,则按照 ASCII 码由小到大排序。
sort(v2.begin(), v2.end(), [&](const pair<int, int>& p1,
const pair<int, int>& p2) {
if(p1.second == p2.second){
return p1.first < p2.first;
}
return p1.second > p2.second;
});
for (auto i : v2) {
if (i.first > 9) {
cout << (char)(i.first - 10 + 'a');
} else {
cout << i.first;
}
}
}