#include<bits/stdc++.h>
using namespace std;
const int N=2000,M=2010;
int n,x,y;
int q[M],tt;
struct Node
{
char s[N+1];
int c,l,r;
}p[M];
char str[2000010];
void move(int k)
{
x=p[0].r;
while(k>p[x].c) k-=p[x].c,x=p[x].r;
y=k-1;
}
void add(int x,int u)
{
p[u].r=p[x].r,p[p[u].r].l=u;
p[x].r=u,p[u].l=x;
}
void insert(int k)
{
if(y<p[x].c-1)
{
int u=q[tt--];
for(int i=y+1;i<p[x].c;i++)
{
p[u].s[p[u].c++]=p[x].s[i];
}
p[x].c=y+1;
add(x,u);
}
int cur=x;
for(int i=0;i<k;)
{
int u=q[tt--];
while(p[u].c<N&&i<k)
p[u].s[p[u].c++]=str[i++];
add(cur,u);
cur=u;
}
}
void del(int u)
{
p[p[u].l].r=p[u].r;
p[p[u].r].l=p[u].l;
p[u].l=p[u].r=p[u].c=0;
q[++tt]=u;
}
void remove(int k)
{
if(p[x].c-1-y>=k)
{
for(int i=y+k+1,j=y+1;i<p[x].c;i++,j++) p[x].s[j]=p[x].s[i];
p[x].c=y+1;
}
else
{
k-=p[x].c-y-1;
p[x].c=y+1;
while(p[x].r&&k>=p[p[x].r].c)
{
int u=p[x].r;
k-=p[u].c;
del(u);
}
int u=p[x].r;
for(int i=0,j=k;j<p[u].c;i++,j++) p[u].s[i]=p[u].s[j];
p[u].c-=k;
}
}
void get(int k)
{
if(p[x].c-1-y>=k)
{
for(int i=0,j=y+1;i<k;i++,j++) putchar(p[x].s[j]);
}
else
{
k-=p[x].c-y-1;
for(int i=y+1;i<p[x].c;i++)
{
putchar(p[x].s[i]);
}
int cur=x;
while(p[cur].r&&k>=p[p[cur].r].c)
{
int u=p[cur].r;
for(int i=0;i<p[u].c;i++) putchar(p[u].s[i]);
k-=p[u].c;
cur=u;
}
int u=p[cur].r;
for(int i=0;i<k;i++) putchar(p[u].s[i]);
}
puts("");
}
void prev()
{
if(!y)
{
x=p[x].l;
y=p[x].c-1;
}
else y--;
}
void next()
{
if(y<p[x].c-1) y++;
else
{
x=p[x].r;
y=0;
}
}
void merge()
{
for(int i=p[0].r;i;i=p[i].r)
{
while(p[i].r&&p[i].c+p[p[i].r].c<N)
{
int r=p[i].r;
for(int j=p[i].c,k=0;k<p[r].c;j++,k++)
{
p[i].s[j]=p[r].s[k];
}
if(x==r) x=i,y+=p[i].c;
p[i].c+=p[r].c;
del(r);
}
}
}
int main()
{
for(int i=1;i<M;i++) q[++tt]=i;
cin>>n;
char op[10];
str[0]='>';
insert(1);
move(1);
while(n--)
{
int a;
scanf("%s",op);
if(!strcmp(op,"Move"))
{
cin>>a;
move(a+1);
}
else if(!strcmp(op,"Insert"))
{
cin>>a;
int i=0,k=a;
while(a)
{
str[i]=getchar();
if(str[i]>=32&&str[i]<=126) i++,a--;
}
insert(k);
merge();
}
else if(!strcmp(op,"Delete"))
{
cin>>a;
remove(a);
merge();
}
else if(!strcmp(op,"Get"))
{
cin>>a;
get(a);
}
else if(!strcmp(op,"Prev"))
{
prev();
}
else if(!strcmp(op,"Next"))
{
next();
}
}
return 0;
}