/* Simion Zanescu Mihai
9th grade
CYGNUS COMPUTER RO
International Senior 5
Language C++
ACSL Contest #4 ACSL STACKS AND QUEUES
*/
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char v[100],s[100];
int l,lv;
void pop(char c,int x)
{
int i=1;
if(c=='S')
{
for(i=l-x;i<l;++i)
v[i]='0';
}
else
{
for(i=0;i<=l-x;++i)
{v[i]=v[i+x];v[i+x]='0';}
}
l=l-x;
}
void psh(char n)
{
v[l]=n;
++l;
}
void dup(int x)
{
int i;
for(i=0;i<x;++i)
psh(v[i]);
}
void swp(int x)
{
int i,l2;
char aux;
l2=l-1;
for(i=x-1;i>=0;--i)
{
aux=v[i];
v[i]=v[l2];
v[l2]=aux;
--l2;
}
}
void swh(char c)
{
if(c=='S')
s[0]='Q';
else
s[0]='S';
}
void crc(char c,int x)
{
int y,i,j=0;
char a[100];
memset(a,0,sizeof(a));
y=x%l;
if(c=='Q')
{
for(i=y;i<l;++i)
a[j++]=v[i];
for(i=0;i<y;++i)
a[j++]=v[i];
for(i=0;i<l;++i)
v[i]=a[i];
}
else
{
for(i=l-y;i<l;++i)
a[j++]=v[i];
for(i=0;i<l-y;++i)
a[j++]=v[i];
for(i=0;i<l;++i)
v[i]=a[i];
}
}
void ins(int x,char n,char c)
{
int i;
char a[100];
if(c=='S')
{
for(i=0;i<=l-x;++i)
a[i]=v[i];
a[i]=n;
for(i=l-x+1;i<l;++i)
a[i+1]=v[i];
for(i=0;i<=l;++i)
v[i]=a[i];
++l;
}
else
{
for(i=0;i<x-1;++i)
a[i]=v[i];
a[i]=n;
for(i=x-1;i<l;++i)
a[i+1]=v[i];
for(i=0;i<=l;++i)
v[i]=a[i];
++l;
}
}
void pin(char n)
{
int i;
for(i=l;i>0;--i)
v[i]=v[i-1];
v[0]=n;
++l;
}
void srta()
{
int s,i;
char aux;
s=1;
for(i=0;i<l;++i)
if(v[i]=='0')
{l=i;break;}
do
{
s=1;
for(i=0;i<l-1;++i)
if(v[i]>v[i+1])
{
aux=v[i];v[i]=v[i+1];v[i+1]=aux;
s=0;
}
}while(!s);
}
void srtd()
{
int s,i;
char aux;
for(i=0;i<l;++i)
if(v[i]=='0')
{l=i;break;}
do
{
s=1;
for(i=0;i<l-1;++i)
if(v[i]<v[i+1])
{
aux=v[i];v[i]=v[i+1];v[i+1]=aux;
s=0;
}
}while(!s);
}
void prt(char c,int x)
{
int i=1;
if(c=='Q')
{
for(i=0;i<x;++i)
{
printf("%c",v[i]);
if(i!=x-1)
printf(", ");
}
}
else
{
for(i=l-x;i<l;++i)
{
printf("%c",v[i]);
if(i!=l-1)
printf(", ");
}
}
}
void read()
{
int i,j;
for(j=1;j<=5;++j)
{
memset(v,0,sizeof(v));
v[0]='A';v[1]='B';v[2]='C';v[3]='D';v[4]='E';
l=5;
gets(s);
lv=strlen(s);
for(i=3;i<lv;i=i+7)
if(isalpha(s[i]))
{
if(s[i]=='C')
crc(s[0],s[i+4]-'0');
if(s[i]=='D')
dup(s[i+4]-'0');
if(s[i]=='I')
{ins(s[i+4]-'0',s[i+7],s[0]);i+=3;}
if(s[i]=='P')
{
if(s[i+1]=='I')
pin(s[i+4]);
if(s[i+1]=='O')
pop(s[0],s[i+4]-'0');
if(s[i+1]=='R')
prt(s[0],s[i+4]-'0');
if(s[i+1]=='S')
psh(s[i+4]);
}
if(s[i]=='S')
{
if(s[i+1]=='R')
{
if(s[i+4]=='a')
srta();
else
srtd();
}
if(s[i+2]=='H')
{swh(s[0]);i=i-2;}
if(s[i+2]=='P')
swp(s[i+4]-'0');
}
}
printf("\n");
}
}
int main()
{
freopen("f.in","r",stdin);
freopen("f.out","w",stdout);
read();
return 0;
}