#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ill;
#define fr first
#define sc second
#define pb push_back
#define mp make_pair
#define mod 1000000007
#define all(x) x.begin(),x.end()
#define endl "\n"
struct treap
{
int pr,cnt;
treap *l,*r;
bool add;
treap(){}
treap(int pr):pr(pr),l(0),r(0),add(0){}
};
int cnt_(treap *t)
{
return t?t->cnt:0;
}
void upd_cnt(treap *&t)
{
if(t)t->cnt=cnt_(t->l)+cnt_(t->r)+1;
}
void push_(treap *&t)
{
if(t)
if(t->add)
{
t->add=0;
swap(t->l,t->r);
if(t->l) t->l->add^=1;
if(t->r)t->r->add^=1;
}
}
void merge_(treap *l,treap *r,treap *&t)
{
push_(l);
push_(r);
if(!l||!r)t=l?l:r;
else if(l->pr>r->pr)
merge_(l->r,r,l->r),t=l;
else merge_(l,r->l,r->l),t=r;
upd_cnt(t);
}
void split_(treap *t,treap *&l,treap *&r,int key)
{
push_(t);
if(!t)l=r=0;
else if(key>cnt_(t->l))
split_(t->r,t->r,r,key-1-cnt_(t->l)),l=t;
else split_(t->l,l,t->l,key),r=t;
upd_cnt(l);
upd_cnt(r);
}
void print(treap *t)
{
push_(t);
if(t->l)print(t->l);
cout<<t->pr<<" ";
if(t->r)print(t->r);
}
void insert_(treap *&t,treap *pt,int pos)
{
treap *t1,*t2;
split_(t,t1,t2,pos);
merge_(t1,pt,t1);
merge_(t1,t2,t);
}
void erase_(treap *&t,int l,int r)
{
treap *t1,*t2,*t3;
split_(t,t1,t2,l);
split_(t2,t2,t3,r-l+1);
merge_(t1,t3,t);
}
void get(treap *&t ,int pos)
{
treap *t1,*t2,*t3;
split_(t,t1,t2,pos);
split_(t2,t2,t3,1);
cout<<t2->pr<<endl;
merge_(t1,t2,t2);
merge_(t2,t3,t);
}
void rotate_(treap *&t,int l,int r)
{
treap *t1,*t2,*t3;
split_(t,t1,t2,l);
split_(t2,t2,t3,r-l+1);
t2->add=1;
merge_(t1,t2,t2);
merge_(t2,t3,t);
}
int n,m,l,r;
string a;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
treap *tree=new treap;tree=0;
freopen("secv8.in","r",stdin);
freopen("secv8.out","w",stdout);
cin>>n>>m;
while(n--)
{
cin>>a;
if(a=="I"){cin>>l>>r;insert_(tree,new treap(r),l-1);}
else if(a=="R"){cin>>l>>r;rotate_(tree,l-1,r-1);}
else if(a=="A"){cin>>l;get(tree,l-1);}
else if(a=="D"){cin>>l>>r;erase_(tree,l-1,r-1);}
}
print(tree);
cout<<endl;
return 0;
}