/*错误版本*/
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
bool cmpValue(const pair<int, int> left,const pair<int,int> right)
{
return left.second < right.second;
}
int main()
{
string inputStr;
while(cin >> inputStr){
map<char,int> myMap;
for(int i = 0;i < inputStr.size();i++){
if(myMap.find(inputStr[i]) != myMap.end()){
myMap[inputStr[i]]++;
}else{
myMap.insert(make_pair(inputStr[i], 1));
}
}
auto i= min_element(myMap.begin(),myMap.end(),cmpValue);
int num = i->second;
for(auto it = myMap.begin();it != myMap.end();it++){
if(it->second <= i->second){
myMap.erase(it->first);
}
}
for(int i = 0;i < inputStr.size();i++){
if(myMap.find(inputStr[i]) != myMap.end()){
cout << inputStr[i];
}
}
cout << endl;
}
return 0;
}
/*正确版本*/
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
bool cmpValue(const pair<int, int> left,const pair<int,int> right)
{
return left.second < right.second;
}
int main()
{
string inputStr;
while(cin >> inputStr){
map<char,int> myMap;
for(int i = 0;i < inputStr.size();i++){
if(myMap.find(inputStr[i]) != myMap.end()){
myMap[inputStr[i]]++;
}else{
myMap.insert(make_pair(inputStr[i], 1));
}
}
auto i= min_element(myMap.begin(),myMap.end(),cmpValue);
int num = i->second;
for(auto it = myMap.begin();it != myMap.end();){
if(it->second <= i->second){
myMap.erase(it++);
}else{
it++;
}
}
for(int i = 0;i < inputStr.size();i++){
if(myMap.find(inputStr[i]) != myMap.end()){
cout << inputStr[i];
}
}
cout << endl;
}
return 0;
}