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