#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); i++)
bool compare(char a,char b){
return a>=b;
}
int main(){
string a;cin>>a;
int len=a.size();
int fre[26]={0};
rep(i,len){
fre[a[i]-'a']++;
}
string ans="";
rep(i,26){
while(fre[i]>1 && i!=25){//For every two frequencies for given char append one char.
char t='a'+i+1;
//cout<<t<<" "<<ans<<endl;
ans.push_back(t);
fre[i]-=2;
}
while(i==25 && fre[i]>0){//Append all 'z' characters found in string
char t='a'+i;
ans.push_back(t);
fre[i]--;
}
if(fre[i]==1){
char t='a'+i;
ans.push_back(t);
//cout<<t<<" "<<ans<<endl;
fre[i]--;
}
}
sort(ans.begin(),ans.end(),compare);
for(int i=0;ans[i]!='\0';i++){
cout<<ans[i];
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcmVwKGksIG4pIGZvciAoaW50IGkgPSAwOyBpIDwgKG4pOyBpKyspCgpib29sIGNvbXBhcmUoY2hhciBhLGNoYXIgYil7CiAgICByZXR1cm4gYT49YjsKfQoKaW50IG1haW4oKXsKICAgIHN0cmluZyBhO2Npbj4+YTsKICAgIGludCBsZW49YS5zaXplKCk7CiAgICBpbnQgZnJlWzI2XT17MH07CiAgICByZXAoaSxsZW4pewogICAgICAgIGZyZVthW2ldLSdhJ10rKzsKICAgIH0KICAgIHN0cmluZyBhbnM9IiI7CiAgICByZXAoaSwyNil7CiAgICAgICAgd2hpbGUoZnJlW2ldPjEgJiYgaSE9MjUpey8vRm9yIGV2ZXJ5IHR3byBmcmVxdWVuY2llcyBmb3IgZ2l2ZW4gY2hhciBhcHBlbmQgb25lIGNoYXIuCiAgICAgICAgICAgIGNoYXIgdD0nYScraSsxOwogICAgICAgICAgICAvL2NvdXQ8PHQ8PCIgIjw8YW5zPDxlbmRsOwogICAgICAgICAgICBhbnMucHVzaF9iYWNrKHQpOwogICAgICAgICAgICBmcmVbaV0tPTI7CiAgICAgICAgfQogICAgICAgIHdoaWxlKGk9PTI1ICYmIGZyZVtpXT4wKXsvL0FwcGVuZCBhbGwgJ3onIGNoYXJhY3RlcnMgZm91bmQgaW4gc3RyaW5nCiAgICAgICAgICAgIGNoYXIgdD0nYScraTsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjayh0KTsKICAgICAgICAgICAgZnJlW2ldLS07CiAgICAgICAgfQogICAgICAgIGlmKGZyZVtpXT09MSl7CiAgICAgICAgICAgIGNoYXIgdD0nYScraTsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjayh0KTsKICAgICAgICAgICAgLy9jb3V0PDx0PDwiICI8PGFuczw8ZW5kbDsKICAgICAgICAgICAgZnJlW2ldLS07CiAgICAgICAgfQogICAgfQogICAgc29ydChhbnMuYmVnaW4oKSxhbnMuZW5kKCksY29tcGFyZSk7CiAgICBmb3IoaW50IGk9MDthbnNbaV0hPSdcMCc7aSsrKXsKICAgICAgICBjb3V0PDxhbnNbaV07CiAgICB9CiAgICByZXR1cm4gMDsKfQoKCgo=