#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
struct Treap
{
int val,w,rev,pr;
Treap *ls,*rs;
Treap()
{
ls=rs=0;
val=w=rev=pr=0;
}
}*R=0,*nil=new Treap;
ifstream f("secv8.in");
ofstream g("secv8.out");
int n,op,i,value,poz,st,dr,pozitia,costul;
char tip;
void pushT(Treap* &nod)
{
if(nod==0) return;
if(nod->rev)
{
swap(nod->ls,nod->rs);
if(nod->ls!=0) nod->ls->rev^=1;
if(nod->rs!=0) nod->rs->rev^=1;
nod->rev=0;
}
}
void countT(Treap* &nod)
{
if(nod==0) return;
nod->w=1;
if(nod->ls) nod->w+=nod->ls->w;
if(nod->rs) nod->w+=nod->rs->w;
}
void mergeT(Treap* &T,Treap* l,Treap* r)
{
if(l==0) {T=r;return;}
if(r==0) {T=l;return;}
pushT(l);pushT(r);
if(l->pr>r->pr) mergeT(l->rs,l->rs,r),T=l;
else mergeT(r->ls,l,r->ls),T=r;
countT(T);
}
void splitT(Treap* T,Treap* &l,Treap* &r,int poz,int cost)
{
if(T==0) {l=r=0;return;}
int cnt=cost;
if(T->ls!=0) cnt+=T->ls->w;
if(cnt>=poz) {splitT(T->ls,l,T->ls,poz,cost);r=T;}
else {splitT(T->rs,T->rs,r,poz,cnt+1);l=T;}
countT(l);countT(r);
}
void ins()
{
Treap *T,*T1=0,*T2=0;
T=new Treap;
T->w=1;
T->pr=rand();T->val=value;
if(poz==1)
{
mergeT(R,T,R);
return;
}
if(poz<=R->w)
{
splitT(R,T1,T2,poz-1,0);
mergeT(R,T1,T);
mergeT(R,R,T2);
}
else
{
mergeT(R,R,T);
}
}
void prop(Treap* &T)
{
pushT(T);
if(T->rs==0) {g<<T->val<<'\n';return;}
prop(T->rs);
}
void find_kth(Treap* &T)
{
pushT(T);
int cnt=costul;
if(T->ls) cnt+=T->ls->w;
if(cnt<=pozitia)
{
costul=cnt;
if(pozitia==costul)
{
prop(T->ls);
return;
}
costul++;
if(pozitia==costul)
{
g<<T->val<<'\n';
return;
}
find_kth(T->rs);
}
else find_kth(T->ls);
}
void afis(Treap* &T)
{
if(T==0) return;
pushT(T);
afis(T->ls);
g<<T->val<<' ';
afis(T->rs);
}
void rev()
{
Treap *T1=0,*T2=0,*T3=0,*T4=0;
splitT(R,T1,T2,st-1,0);
splitT(T2,T3,T4,dr-st+1,0);
T3->rev^=1;
mergeT(R,T1,T3);
mergeT(R,R,T4);
}
void del()
{
Treap *T1,*T2,*T3,*T4;
splitT(R,T1,T2,st-1,0);
splitT(T2,T3,T4,dr-st+1,0);
mergeT(R,T1,T4);
}
int main()
{
f>>n>>op;
srand(time(NULL));
for(i=1;i<=n;i++)
{
f>>tip;
if(tip=='I')
{
f>>poz>>value;
ins();
}
if(tip=='A')
{
f>>pozitia;costul=0;
find_kth(R);
}
if(tip=='R')
{
f>>st>>dr;
rev();
}
if(tip=='D')
{
f>>st>>dr;
del();
}
}
afis(R);
return 0;
}