#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLEN 100001
char *removeDuplicateLetter(char *str) {
int map[26], len = (int) strlen(str);
char *res = (char *) malloc(len + 1);
memset(map, 0, sizeof(int) * 26);
for (int i = 0; i < len; i++) {
map[str[i] - 'a']++;
}
int l = 0, r = 0, index = 0;
while (r < len) {
if (map[str[r] - 'a'] == -1 ||
--map[str[r] - 'a'] > 0) {
r++;
continue;
}
int pick = -1;
for (int i = l; i <= r; i++) {
if (map[str[i] - 'a'] != -1 &&
(pick == -1 || str[i] < str[pick]))
pick = i;
}
res[index++] = str[pick];
for (int i = pick + 1; i <= r; i++) {
if (map[str[i] - 'a'] != -1)
map[str[i] - 'a']++;
}
map[str[pick] - 'a'] = -1;
l = pick + 1;
r = l;
}
res[index] = '\0';
return res;
}
int main(void) {
char str[MAXLEN], *res;
scanf("%s", str);
res = removeDuplicateLetter(str);
printf("%s", res);
free(res);
return 0;
}