#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();
}