#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct data
{
	char a;
	int vt;
}typedef data;

int cmp (data a, data b)
{
	if (a.a<b.a) return 0;
	else if (a.a==b.a)
	{
		if (a.vt>b.vt) return 0;
	}
	return 1;
}

int main ()
{
	string xau;
	cin>>xau;
	vector <data> v;
	for (int i=0; i<xau.length(); i++)
	{
		data tg;
		tg.a=xau[i];
		tg.vt=i;
		v.push_back(tg);
	}
	sort (v.begin(), v.end(), cmp);
	
	int vtm=-1;
	for (int i=0; i<v.size(); i++)
	{
		if (v[i].vt>vtm) 
		{
			cout<<v[i].a;
			vtm=v[i].vt;
		}
	}
	return 0;
}