#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;
ans.push_back(t);
//cout<<t<<" "<<ans<<endl;
fre[t-'a']++;
if(fre[t-'a']>1) ans.pop_back();
else if(fre[t-'a']==1) fre[t-'a']--;
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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcmVwKGksIG4pIGZvciAoaW50IGkgPSAwOyBpIDwgKG4pOyBpKyspCgpib29sIGNvbXBhcmUoY2hhciBhLGNoYXIgYil7CiAgICByZXR1cm4gYT49YjsKfQogCmludCBtYWluKCl7CiAgICBzdHJpbmcgYTtjaW4+PmE7CiAgICBpbnQgbGVuPWEuc2l6ZSgpOwogICAgaW50IGZyZVsyNl09ezB9OwogICAgcmVwKGksbGVuKXsKICAgICAgICBmcmVbYVtpXS0nYSddKys7CiAgICB9CiAgICBzdHJpbmcgYW5zPSIiOwogICAgcmVwKGksMjYpewogICAgICAgIHdoaWxlKGZyZVtpXT4xICYmIGkhPTI1KXsvL0ZvciBldmVyeSB0d28gZnJlcXVlbmNpZXMgZm9yIGdpdmVuIGNoYXIgYXBwZW5kIG9uZSBjaGFyLgogICAgICAgICAgICBjaGFyIHQ9J2EnK2krMTsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjayh0KTsKICAgICAgICAgICAgLy9jb3V0PDx0PDwiICI8PGFuczw8ZW5kbDsKICAgICAgICAgICAgZnJlW3QtJ2EnXSsrOwogICAgICAgICAgICBpZihmcmVbdC0nYSddPjEpIGFucy5wb3BfYmFjaygpOwogICAgICAgICAgICBlbHNlIGlmKGZyZVt0LSdhJ109PTEpIGZyZVt0LSdhJ10tLTsKICAgICAgICAgICAgZnJlW2ldLT0yOwogICAgICAgIH0KICAgICAgICB3aGlsZShpPT0yNSAmJiBmcmVbaV0+MCl7Ly9BcHBlbmQgYWxsICd6JyBjaGFyYWN0ZXJzIGZvdW5kIGluIHN0cmluZwogICAgICAgICAgICBjaGFyIHQ9J2EnK2k7CiAgICAgICAgICAgIGFucy5wdXNoX2JhY2sodCk7CiAgICAgICAgICAgIGZyZVtpXS0tOwogICAgICAgIH0KICAgICAgICBpZihmcmVbaV09PTEpewogICAgICAgICAgICBjaGFyIHQ9J2EnK2k7CiAgICAgICAgICAgIGFucy5wdXNoX2JhY2sodCk7CiAgICAgICAgICAgIC8vY291dDw8dDw8IiAiPDxhbnM8PGVuZGw7CiAgICAgICAgICAgIGZyZVtpXS0tOwogICAgICAgIH0KICAgIH0KICAgIHNvcnQoYW5zLmJlZ2luKCksYW5zLmVuZCgpLGNvbXBhcmUpOwogICAgZm9yKGludCBpPTA7YW5zW2ldIT0nXDAnO2krKyl7CiAgICAgICAgY291dDw8YW5zW2ldOwogICAgfQogICAgcmV0dXJuIDA7Cn0=