#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
string sortString( string s) {
int i;
string res;
int cnt[ 26 ] = { } ;
for ( i= ( 0 ) ; i< ( s.size ( ) ) ; i++ ) {
cnt[ s[ i] - 'a' ] ++ ;
}
for ( ;; ) {
int cTE1_r3A;
int RZTsC2BF;
if ( 26 == 0 ) {
RZTsC2BF = 0 ;
}
else {
RZTsC2BF = cnt[ 0 ] ;
for ( cTE1_r3A= ( 1 ) ; cTE1_r3A< ( 26 ) ; cTE1_r3A++ ) {
RZTsC2BF + = cnt[ cTE1_r3A] ;
}
}
if ( RZTsC2BF== 0 ) {
break ;
}
for ( i= ( 0 ) ; i< ( 26 ) ; i++ ) {
if ( cnt[ i] ) {
cnt[ i] -- ;
res + = 'a' + i;
}
}
for ( i= ( 26 ) - 1 ; i>= ( 0 ) ; i-- ) {
if ( cnt[ i] ) {
cnt[ i] -- ;
res + = 'a' + i;
}
}
}
return res;
}
}
;
// cLay varsion 20200308-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// string sortString(string s) {
// string res;
// int cnt[26] = {};
// rep(i,s.size()) cnt[s[i]-'a']++;
// for(;;){
// if(sum(cnt(26))==0) break;
// rep(i,26) if(cnt[i]) cnt[i]--, res += 'a' + i;
// rrep(i,26) if(cnt[i]) cnt[i]--, res += 'a' + i;
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIHN0cmluZyBzb3J0U3RyaW5nKHN0cmluZyBzKXsKICAgIGludCBpOwogICAgc3RyaW5nIHJlczsKICAgIGludCBjbnRbMjZdID0ge307CiAgICBmb3IoaT0oMCk7aTwocy5zaXplKCkpO2krKyl7CiAgICAgIGNudFtzW2ldLSdhJ10rKzsKICAgIH0KICAgIGZvcig7Oyl7CiAgICAgIGludCBjVEUxX3IzQTsKICAgICAgaW50IFJaVHNDMkJGOwogICAgICBpZigyNj09MCl7CiAgICAgICAgUlpUc0MyQkYgPSAwOwogICAgICB9CiAgICAgIGVsc2V7CiAgICAgICAgUlpUc0MyQkYgPSBjbnRbMF07CiAgICAgICAgZm9yKGNURTFfcjNBPSgxKTtjVEUxX3IzQTwoMjYpO2NURTFfcjNBKyspewogICAgICAgICAgUlpUc0MyQkYgKz0gY250W2NURTFfcjNBXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYoUlpUc0MyQkY9PTApewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGZvcihpPSgwKTtpPCgyNik7aSsrKXsKICAgICAgICBpZihjbnRbaV0pewogICAgICAgICAgY250W2ldLS07CiAgICAgICAgICByZXMgKz0gJ2EnICsgaTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZm9yKGk9KDI2KS0xO2k+PSgwKTtpLS0pewogICAgICAgIGlmKGNudFtpXSl7CiAgICAgICAgICBjbnRbaV0tLTsKICAgICAgICAgIHJlcyArPSAnYScgKyBpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHJlczsKICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAyMDAzMDgtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBzdHJpbmcgc29ydFN0cmluZyhzdHJpbmcgcykgewovLyAgICAgc3RyaW5nIHJlczsKLy8gICAgIGludCBjbnRbMjZdID0ge307Ci8vICAgICByZXAoaSxzLnNpemUoKSkgY250W3NbaV0tJ2EnXSsrOwovLyAgICAgZm9yKDs7KXsKLy8gICAgICAgaWYoc3VtKGNudCgyNikpPT0wKSBicmVhazsKLy8gICAgICAgcmVwKGksMjYpIGlmKGNudFtpXSkgY250W2ldLS0sIHJlcyArPSAnYScgKyBpOwovLyAgICAgICBycmVwKGksMjYpIGlmKGNudFtpXSkgY250W2ldLS0sIHJlcyArPSAnYScgKyBpOwovLyAgICAgfQovLyAgICAgcmV0dXJuIHJlczsKLy8gICB9Ci8vIH07Cg==