90879ad19e233be01b665f3067f32259500afc73e8a258faeb920347df8ebeba
// https://szkopul.edu.pl/problemset/problem/o1NEueUA9jK2jGzxyD_9EucA/site/?key=statement
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int sizik = 1000 * 1001;
#define ar std::array
#define pr std::pair
#define vec std::vector
typedef vec<vec<int>> _kra;
int cnt[sizik];
std::vector<int> alphabet;
void getTheBest() {
std::sort(alphabet.begin(), alphabet.end(), [](char a, char b) { return cnt[a] > cnt[b]; });
}
void solve() {
std::string s;
std::cin >> s;
std::string ans;
for (const auto& a : s) {
cnt[a]++;
}
ans.push_back(32);
ans.push_back(32);
while (true) {
getTheBest();
bool isGood = false;
int j = ans.size();
for (int i = 0; i < (int)alphabet.size(); i++) {
int c1 = alphabet[i];
if (cnt[c1] <= 0) break;
if (ans[j - 1] != c1 && ans[j - 2] != c1) {
isGood = true;
ans.push_back(c1);
cnt[c1]--;
break;
}
}
if (!isGood) break;
}
ans.erase(ans.begin(), ans.begin() + 2);
std::cout << ans << '\n';
}
int32_t main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
for (char i = 'a'; i <= 'z'; i++) {
alphabet.push_back(i);
}
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}