#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; }