#include <iostream>
using namespace std;
#include<string>
#include<map>
int main() {
    string str;
    map<char, int> mp;
    getline(cin, str);
    for (int i = 0; i < str.size(); i++) {
        if (mp.count(str[i] == 0)) {
            mp.insert(pair<char, int>(str[i], 1));
        } else {
            mp[str[i]]++;
        }
    }
    int min = mp.begin()->second;
    char minCh = mp.begin()->first;
    int lastMin = 0;
    char lastMinCh;
    bool flag = true;
    int j = 0;
    while (flag) {

        for (map<char, int>::iterator it = mp.begin(); it != mp.end(); it++) {
            if (j == 0) {
                if (it->second < min) {
                    min = it->second;
                    minCh = it->first;
                }
            } else {
                if (it->first != lastMinCh && it->second == lastMin) {
                    minCh = it->first;
                }
                else if(it->first == lastMinCh){
                    it->second++;
                }
            }

        }


        if (lastMinCh == minCh && j >= 1) {
            flag = false;
        }

        if (flag) {
            for (int i = 0; i < str.size() ; i++) {
                if (str[i] == minCh) {
                    str[i] = ' ';
                }
            }
            lastMin = min;
            lastMinCh = minCh;
            j++;
        }

    }

    for (int i = 0; i < str.size() ; i++) {
        if (str[i] != ' ') {
            cout << str[i];
        }
    }

}

用了map来存,对于检查过的字符,将其map中的计数加一以避免下次检查的时候重复检查导致死循环