#include <iostream>
#include <cstring>
#include <cstdio>
#include <deque>
using namespace std;
int main()
{
int n,op,u;
deque<int>dq;
scanf("%d",&n);
dq.clear();//清空队列
while(n--)
{
scanf("%d%d",&op,&u);
if(op==1)
dq.push_front(u);//队首插入
else if(op==2)
dq.push_back(u);//队尾插入
else if(op==3)
dq.pop_front();//头部弹出元素
else
dq.pop_back();//尾部弹出元素
}
/*遍历*/
deque<int>::iterator i,iend;
iend=dq.end();
for(i=dq.begin(); i!=iend; i++)
{
cout<<*i<<endl;
}
return 0;
}