#include<bits/stdc++.h>
using namespace std;
int a[128];//a数组存各个字符的数量
int b[128];//b数组 以字符数量由大到小 存取字符对应的ASCII码
int main(){
      string s;
      cin>>s;
      int len=s.size();
      for(int i=0;i<len;i++)a[s[i]]++;

      for(int i=0;i<128;i++)b[i]=i;//对b数组初始化为各个ASCII码

  //冒泡排序
for(int i=0;i<127;i++){
    for(int j=0;j<127-i;j++){
if(a[b[j]]<a[b[j+1]])swap(b[j],b[j+1]);
    //交换b数组中元素位置,使字符数量更大的字符的ASCII码靠前
    }
}

for(int i=0;i<128;i++){
    if(a[b[i]])printf("%c",b[i]);//按序输出
}
return 0;
}