#include<bits/stdc++.h>
using namespace std;
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define f first
#define s second
#define i128 __int128
#define ll long long
#define ull unsigned long long
#define endl '\n'
#define INF (unsigned long long)2000000000000000000
#define input(v) for(auto& it : v){cin >> it;}
void read128(i128 &x) {
x = 0;
string s;
cin >> s;
bool sign = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '-')sign = 1;
else {
x *= 10;
x += s[i] - '0';
}
}
if (sign)x *= -1;
}
void print128(i128 x) {
string s = "";
if (x == 0) {
cout << '0';
return;
}
bool sign = 0;
if (x < 0) {
sign = 1;
x *= -1;
}
while (x) {
s += (x % 10) + '0';
x /= 10;
}
if (sign)
s += '-';
reverse(all(s));
cout << s;
}
ll fastp(ll base,ll exp) {
ll res = 1;
while (exp) {
if (exp & 1)res *= base;
base *= base;
exp >>= 1;
}
return res;
}
ll pmod(ll base,ll exp,ll mod) {
ll res = 1;
base %= mod;
while (exp) {
if (exp & 1) res *= base;
res %= mod;
base *= base;
base %= mod;
exp >>= 1;
}
return res;
}
inline void solve(){
string s;cin>>s;
map<char,int>mp;
for (auto &a:s) {
mp[a]++;
}
int l = 0,r = 0;
char cur = '#';
while (r<s.size()) {
cur = mp.size() + 'a'-1;
if (s[r]<cur) {
break;
}else if (s[r] == cur){
}else {
while (l<=r) {
mp[s[l]]--;
if (!mp[s[l]])mp.erase(s[l]);
l++;
}
}
r++;
}
cur = mp.size() + 'a'-1;
int d = s.size()-1;
while (s[d]>cur && mp[s[d]] > 1) {
d--;
}
for (int i = l;i<=d;i++) {
s[i] = cur;
}
cout<<s<<endl;
}
int main() {
#ifdef LOCAL
freopen("input.txt","r",stdin);
#else
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#endif
int x = 1;
// cin >> x;
while (x--)
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSByYWxsKHYpIHYucmJlZ2luKCksdi5yZW5kKCkKI2RlZmluZSBmIGZpcnN0CiNkZWZpbmUgcyBzZWNvbmQKI2RlZmluZSBpMTI4IF9faW50MTI4CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIElORiAodW5zaWduZWQgbG9uZyBsb25nKTIwMDAwMDAwMDAwMDAwMDAwMDAKI2RlZmluZSBpbnB1dCh2KSBmb3IoYXV0byYgaXQgOiB2KXtjaW4gPj4gaXQ7fQp2b2lkIHJlYWQxMjgoaTEyOCAmeCkgewogICAgeCA9IDA7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOwogICAgYm9vbCBzaWduID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5zaXplKCk7IGkrKykgewogICAgICAgIGlmIChzW2ldID09ICctJylzaWduID0gMTsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgeCAqPSAxMDsKICAgICAgICAgICAgeCArPSBzW2ldIC0gJzAnOwogICAgICAgIH0KICAgIH0KICAgIGlmIChzaWduKXggKj0gLTE7Cn0Kdm9pZCBwcmludDEyOChpMTI4IHgpIHsKICAgIHN0cmluZyBzID0gIiI7CiAgICBpZiAoeCA9PSAwKSB7CiAgICAgICAgY291dCA8PCAnMCc7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgYm9vbCBzaWduID0gMDsKICAgIGlmICh4IDwgMCkgewogICAgICAgIHNpZ24gPSAxOwogICAgICAgIHggKj0gLTE7CiAgICB9CiAgICB3aGlsZSAoeCkgewogICAgICAgIHMgKz0gKHggJSAxMCkgKyAnMCc7CiAgICAgICAgeCAvPSAxMDsKICAgIH0KICAgIGlmIChzaWduKQogICAgICAgIHMgKz0gJy0nOwogICAgcmV2ZXJzZShhbGwocykpOwogICAgY291dCA8PCBzOwp9CmxsIGZhc3RwKGxsIGJhc2UsbGwgZXhwKSB7CiAgICBsbCByZXMgPSAxOwogICAgd2hpbGUgKGV4cCkgewogICAgICAgIGlmIChleHAgJiAxKXJlcyAqPSBiYXNlOwogICAgICAgIGJhc2UgKj0gYmFzZTsKICAgICAgICBleHAgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CmxsIHBtb2QobGwgYmFzZSxsbCBleHAsbGwgbW9kKSB7CiAgICBsbCByZXMgPSAxOwogICAgYmFzZSAlPSBtb2Q7CiAgICB3aGlsZSAoZXhwKSB7CiAgICAgICAgaWYgKGV4cCAmIDEpIHJlcyAqPSBiYXNlOwogICAgICAgIHJlcyAlPSBtb2Q7CiAgICAgICAgYmFzZSAqPSBiYXNlOwogICAgICAgIGJhc2UgJT0gbW9kOwogICAgICAgIGV4cCA+Pj0gMTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCmlubGluZSB2b2lkIHNvbHZlKCl7CiAgICBzdHJpbmcgcztjaW4+PnM7CiAgICBtYXA8Y2hhcixpbnQ+bXA7CiAgICBmb3IgKGF1dG8gJmE6cykgewogICAgICAgIG1wW2FdKys7CiAgICB9CiAgICBpbnQgbCA9IDAsciA9IDA7CiAgICBjaGFyIGN1ciA9ICcjJzsKICAgIHdoaWxlIChyPHMuc2l6ZSgpKSB7CiAgICAgICAgY3VyID0gbXAuc2l6ZSgpICsgJ2EnLTE7CiAgICAgICAgaWYgKHNbcl08Y3VyKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH1lbHNlIGlmIChzW3JdID09IGN1cil7CgogICAgICAgIH1lbHNlIHsKICAgICAgICAgICAgd2hpbGUgKGw8PXIpIHsKICAgICAgICAgICAgICAgIG1wW3NbbF1dLS07CiAgICAgICAgICAgICAgICBpZiAoIW1wW3NbbF1dKW1wLmVyYXNlKHNbbF0pOwogICAgICAgICAgICAgICAgbCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHIrKzsKICAgIH0KICAgIGN1ciA9IG1wLnNpemUoKSArICdhJy0xOwogICAgaW50IGQgPSBzLnNpemUoKS0xOwogICAgd2hpbGUgKHNbZF0+Y3VyICYmIG1wW3NbZF1dID4gMSkgewogICAgICAgIGQtLTsKICAgIH0KICAgIGZvciAoaW50IGkgID0gbDtpPD1kO2krKykgewogICAgICAgIHNbaV0gPSBjdXI7CiAgICB9CiAgICBjb3V0PDxzPDxlbmRsOwp9CmludCBtYWluKCkgewoJI2lmZGVmIExPQ0FMCgkgICAgZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwoJI2Vsc2UKCSAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CgkjZW5kaWYKCiAgICBpbnQgeCA9IDE7CiAgICAvLyBjaW4gPj4geDsKICAgIHdoaWxlICh4LS0pCiAgICAgICAgc29sdmUoKTsKfQoK