#include <bits/stdc++.h>
const int N = 100003;
struct Links {
int nxt[N], e[N], idx, head;
void init() {
idx = 0;
head = -1;
}
void add_head(int x) {
e[idx] = x;
nxt[idx] = head;
head = idx++;
}
void add(int a, int b) {
e[idx] = b;
nxt[idx] = nxt[a];
nxt[a] = idx++;
}
void remove(int k) {
nxt[k] = nxt[nxt[k]];
}
void print() {
for (int i = head; i !=-1; i = nxt[i]) {
std::cout << e[i] << " ";
}
}
};
Links L;
int m;
int main(void) {
L.init();
std::cin >> m;
std::string op;
int x;
while (m--) {
std::cin >> op;
if (op[0] == 'H') {
std::cin >> x;
L.add_head(x);
} else if (op[0] == 'I') {
int k;
std::cin >> k >> x;
L.add(k - 1, x);
} else {
int k;
std::cin >> k;
if (!k) {
L.head = L.nxt[L.head];
} else {
L.remove(k - 1);
}
}
}
L.print();
}