#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int tt;
int head, idx=1;
vector<int> e(N), ne(N, -1);
void iint()
{
head = -1;
return;
}
void add_head(int x)//向链表头插入一个数
{
ne[idx] = head;
head = idx;
e[idx] = x;
idx++;
}
void del(int k)//删除第k个数后面的数
{
if (k == 0)
head = ne[head];
else
ne[k] = ne[ne[k]];
return;
}
void push(int k, int x)//在第k个数后加入x
{
ne[idx] = ne[k];
ne[k] = idx;
e[idx] = x;
idx++;
}
void lprint()
{
for (int i = head; i!=-1; i = ne[i])
{
cout << e[i] << ' ';
}
return;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
//freopen(".in", "r", stdin);
iint();
cin >> tt;
while (tt--)
{
char c;
cin >> c;
if (c == 'H')
{
int x;
cin >> x;
add_head(x);
}
if (c == 'D')
{
int k;
cin >> k;
del(k);
}
if (c == 'I')
{
int k, x;
cin >> k >> x;
push(k, x);
}
// lprint();
//cout << endl;
}
//cout << "-------" << endl;
lprint();
return 0;
}