#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
struct Node{
char ch;
int count;
Node(char c, int n){
ch=c;
count=n;
}
};
bool cmp(Node &n1, Node &n2){
return n1.count!=n2.count ? n1.count>n2.count : n1.ch<n2.ch;
}
int isContained(char ch, vector<Node> v){
for(int i=0;i<v.size();i++)
if(v[i].ch==ch)
return i;
return -1;
}
int main(){
string str;
while(cin>>str){
vector<Node> vec;
for(int i=0;i<str.size();i++){
int index=isContained(str[i], vec);
if(index==-1){
Node node(str[i],1);
vec.push_back(node);
}
else{
vec[index].count++;
}
}
sort(vec.begin(),vec.end(),cmp);
for(int i=0;i<vec.size();i++)
cout<<vec[i].ch;
cout<<endl;
}
return 0;
}