7c9bf86f047df23edc0f6390fac0530d9ef17c033241be3a150498a9b4487028
// https://szkopul.edu.pl/problemset/problem/VevdwvBD_QUR4Ajom1qPixVl/site/?key=statement
#include <bits/stdc++.h>
// #define GARY_DBG
#define GARY_LIB
constexpr int sizik = 1000 * 1001;
#define ar std::array
typedef std::vector<std::vector<int>> _kra;
void solve() {
std::string s;
std::cin >> s;
std::map<int, std::vector<int>> m;
int idx = 1, cnt = 0;
for (const auto& c : s) {
if (c == 'd') {
if (cnt == 0) continue;
cnt--;
for (int i = 'z'; i >= 'a'; i--) {
if (!m[i].empty()) {
m[i].pop_back();
break;
}
}
} else {
cnt++;
m[c].push_back(idx);
idx++;
}
}
std::vector<std::pair<int, int>> v;
for (const auto& [a, b] : m) {
for (const auto& c : b) {
v.push_back({c, a});
}
}
std::sort(v.begin(), v.end());
for (const auto& [_, c] : v) {
std::cout << (char)c;
}
std::cout << '\n';
}
int32_t main() {
#ifndef GARY_DBG
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
#endif
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}