/* Student name : Glorija Volarevic

  School Name : V. gimnazija

  Language Name : C++

  Division Name : Junior

  Contest #4 */

 

#include <cstdio>

#include <string>

#include <iostream>

 

using namespace std;

 

int poc, kraj, broj, sto, k1[5];

char to;

char qust[1000], prvi[100], drugi[100], treci[100], cetvrti[100], peti[100] ;

 

void pop ( int x ) {

     if ( sto ) {

        kraj=kraj-x;    

          } else {

        poc=poc+x;         

     }

}

 

void push ( char to ) {

        qust[kraj]=to;

          

        kraj++;

 

}

 

void dup ( int x ) {

     for ( int i = poc ; i < poc+x ; ++i ) {

     push ( qust[i] ) ;

}    

}

 

void swp ( int x ) {

     if ( sto ) {

          int a = kraj - x ;

        for ( int i =0; i < x ; ++i ) {

            int y = qust[a];

           qust[a]=qust[poc+i];

           qust[poc+i]=y;

            a++;

        }    

          } else {

          int a = kraj - x ;

        for ( int i =0; i < x ; ++i ) {

            int y = qust[a];

           qust[a]=qust[poc+i];

           qust[poc+i]=y;

            a++;

               

        }                

     }    

    

  

}

 

int main ( void ) {

   

  for ( int z = 0 ; z< 5 ; ++z ) {

    string s;

   memset ( qust, 0, sizeof qust ) ;

  

   poc=0; kraj=5; qust[0]='A'; qust[1]='B'; qust[2]='C' ; qust[3]='D'; qust[4]='E';

 

   cin >> s ;

       if ( s=="Q" ) { sto=0;  } ;

       if ( s=="S" ) { sto=1;  } ;

   while ( s!="PRT" ) {      

            cin >> s ;

   

          

            if ( s=="POP" ) {

               scanf ( "%d", &broj ) ;     

                pop(broj);   

            }

            

             if ( s=="PSH" ) {

             scanf ( " %c", &to) ;

                push(to);   

            }

           

            if ( s=="DUP" ) {

                    scanf ( "%d", &broj ) ;     

                    dup(broj);

            }

           

            if ( s=="SWH" ) { sto = ( sto - 1 ) * - 1 ;    }

           

            if ( s=="SWP" ) {

               scanf ( "%d", &broj ) ;     

               swp ( broj ) ;          

            }

           

    }

  

 

  

   scanf ( "%d", &broj ) ;

   k1[z]=0;

 

 if ( z==0 ) {

  

   if ( sto ) {

        int y = kraj - broj;

        for ( int i = y ; i < kraj; ++i ) {         prvi[k1[z]]=qust[i] ;              k1[z]++; }

        }

       else {   for  (int i = poc ; i < poc+broj; ++i ) {      prvi[k1[z]]=qust[i] ;              k1[z]++;}

       }

             }

  

     

     if ( z==1 ) {

  

   if ( sto ) {

        int y = kraj - broj;

        for ( int i = y ; i < kraj; ++i ) {         drugi[k1[z]]=qust[i] ;              k1[z]++; }

        }

       else {   for  (int i = poc ; i < poc+broj; ++i ) {      drugi[k1[z]]=qust[i] ;              k1[z]++;}

       }

             }

  

       if ( z==2 ) {

  

   if ( sto ) {

        int y = kraj - broj;

        for ( int i = y ; i < kraj; ++i ) {        treci[k1[z]]=qust[i] ;              k1[z]++; }

        }

       else {   for  (int i = poc ; i < poc+broj; ++i ) {      treci[k1[z]]=qust[i] ;              k1[z]++;}

       }

             }

  

       if ( z==3 ) {

  

   if ( sto ) {

        int y = kraj - broj;

        for ( int i = y ; i < kraj; ++i ) {        cetvrti[k1[z]]=qust[i] ;              k1[z]++; }

        }

       else {   for  (int i = poc ; i < poc+broj; ++i ) {    cetvrti[k1[z]]=qust[i] ;              k1[z]++;}

       }

             }

  

       if ( z==4 ) {

  

   if ( sto ) {

        int y = kraj - broj;

        for ( int i = y ; i < kraj; ++i ) {         peti[k1[z]]=qust[i] ;              k1[z]++; }

        }

       else {   for  (int i = poc ; i < poc+broj; ++i ) {      peti[k1[z]]=qust[i] ;              k1[z]++;}

       }

             }

  

          

 

 

 }

 

 

      for ( int j = 0; j < k1[0] ; ++j ) {

          if ( j!=k1[0]-1 ) { printf ( "%c, ", prvi[j] ) ; } else {printf ( "%c\n", prvi[j] ) ; }      

     

      }   

     

     

      for ( int j = 0; j < k1[1] ; ++j ) {

          if ( j!=k1[1]-1 ) { printf ( "%c, ", drugi[j] ) ; } else {printf ( "%c\n", drugi[j] ) ; }      

     

      }   

     

      for ( int j = 0; j < k1[2] ; ++j ) {

          if ( j!=k1[2]-1 ) { printf ( "%c, ", treci[j] ) ; } else {printf ( "%c\n", treci[j] ) ; }      

     

      }   

     

     

      for ( int j = 0; j < k1[3] ; ++j ) {

          if ( j!=k1[3]-1 ) { printf ( "%c, ", cetvrti[j] ) ; } else {printf ( "%c\n", cetvrti[j] ) ; }      

     

      }   

 

 

      for ( int j = 0; j < k1[4] ; ++j ) {

          if ( j!=k1[4]-1 ) { printf ( "%c, ", peti[j] ) ; } else {printf ( "%c\n", peti[j] ) ; }      

     

      }   

 

  

    return 0;   

}

 

 

/*

Student name: Ena Oster

School name: V. gimanzija

Language name: c++

Division name: JUnior Division

Contest #4

*/

 

#include <cstdio>

#include <iostream>

#include <string>

#include <vector>

 

using namespace std;

 

int poc, kraj, u, br, dulj;

char c, tmp;

string s, n, nar, t, zavr, x1, x2, x3, niz[7];

 

 

 

int main(void){

    for (int j = 0; j < 5; j++){

        scanf ("%c", &c);

        char tm[100];

        cin.getline (tm, 100);

        s = string (tm);

        poc = 0;

        kraj = 5;

        n = "ABCDE";

        nar = "";

        for (int i = 1; i < s.size(); i++){

            tmp = s[i];

            if (tmp == ','){if (nar.size() > 4){

                       t = nar.substr(1, 3);

                       if (t == "POP"){

                          if (c == 'S'){

                             dulj = n.size();

                             br = nar[5] - '0';

                             n = n.substr(0, dulj - br);

                             kraj--;

                             nar = "";     

                          } else {

                             br = nar[5] - '0';

                             poc = poc+ br;  

                             nar = "";         

                          }    

                       }

                       if (t == "PSH"){

                             n = n + nar[5];

                             kraj++;  

                             nar = "";       

                       } 

                       if (t == "DUP"){

                             br = nar[5] - '0';

                             n = n + n.substr(poc, br);

                             kraj = kraj + br;  

                             nar = "";         

                       }   

                       if (t == "SWP"){

                             br = nar[5] - '0';

                             dulj = n.size();

                             x1 = n.substr(0, br);

                             x2 = n.substr(dulj - br, br);

                             x3 = n.substr(2, dulj-br-br);

                             n = x2 + x3 + x1;

                             nar = "";         

                       }

                    } else {

                           if (c == 'S'){c = 'Q';} else {c = 'S';} 

                           nar = "";    

                    }

            } else {nar = nar + tmp;}

           

            }

            t = nar.substr(1, 3);

            if (t == "PRT"){

               if (c == 'S'){

                             dulj = n.size();

                             br = nar[5] - '0';

                             zavr = zavr + n.substr(dulj-br, br);

                             nar = "";     

               } else {

                             br = nar[5] - '0';

                             zavr = zavr + n.substr(poc, br); 

                             nar = "";         

               }

              

        }

           niz[j] = zavr;

           zavr = "";                

        }

       

   

    for (int i = 0; i < 5; i++){

        t = niz[i];

        u = t.size();

        for (int j = 0; j < u - 1; j++){

            printf ("%c, ", t[j]);   

        }

        printf ("%c\n", t[u - 1]);  

    }

   

   

    return 0;   

}

 

 

//STUDENT NAME:DOMAGOJ CEVID

//SCHOOL NAME:V.GIMNAZIJA

//LANGUAGE NAME:CPP

//DIVISION NAME:JUNIOR DIVISION

//CONTEST:#4

 

 

 

#include <cstdio>

#include <string>

 

using namespace std;

 

int main(void){

    char tab[5][100];

    memset(tab,'z',sizeof(tab));

    char type[5];

   for(int k=0;k<5;++k){

   

    scanf("%c",&type[k]);

 

   

    char stack[1000];

    memset(stack,'x',sizeof(stack));

    stack[100]='A';

    stack[101]='B';

    stack[102]='C';

    stack[103]='D';

    stack[104]='E';

    int brojac=5;

    int pocetak=100;

    string ss="";

    while(ss!="PRT"){

                    char bla[5];

                    scanf("%s",bla);

                    ss=bla;

                    for(int i=0;i<3;++i)

                    if(ss=="PSH")

                    scanf(" ");

                  

                    if(ss=="POP"){

                                  int x;

                                  scanf("%d",&x);

                                  if(type[k]=='S'){

                                  int k=brojac-x;

                                  for(int i=0;i<x;++i){

                                          stack[i+pocetak+k]='x';

                                          --brojac;

                                         

                                          }

                                          }

                                  if(type[k]=='Q'){     

                                            for(int i=0;i<x;++i){

                                                    stack[pocetak+i]='x';

                                                    }

                                                   pocetak+=x;

                                                   brojac-=x;   

                                                }

                                                 

                                  }

                    if(ss=="PSH"){

                                  char O;

                                  scanf("%c",&O);

                                  if(type[k]=='S'){

                                  stack[pocetak+brojac]=O;

                                  ++brojac;}

                                  if(type[k]=='Q'){

                                  stack[pocetak+brojac]=O;             

                                  ++brojac;           

                                  }

                                 

                                  }                   

                    if(ss=="DUP"){

                                  int x;

                                  scanf("%d",&x);

                                  for(int i=0;i<x;++i){

                                          stack[pocetak+brojac]=stack[pocetak+i];

                                          ++brojac;

                                          }

                                  }

                    if(ss=="SWP"){

                                  int x;

                                  scanf("%d",&x);

                                  for(int i=0;i<x;++i){

                                          char a;

                                          a=stack[pocetak+brojac-x+i];

                                          stack[pocetak+brojac-x+i]=stack[pocetak+i];

                                          stack[pocetak+i]=a;

                                          }

                                  }

                    if(ss=="SWH"){

                                 

                                  if(type[k]=='S')

                                               type[k]='Q';

                                 

                                  else

                                  if(type[k]=='Q')

                                               type[k]='S';

                                 

                                 //printf("%c",type);

                                  }

                    if(ss=="PRT"){

                                  int x;

                                  scanf("%d",&x);

                                  if(type[k]=='S'){

                                                int h=0;

                                               for(int i=brojac-x;i<brojac;++i){

                                                       tab[k][h]=stack[i+pocetak];

                                                       ++h;

                                                       }

                                               

                                                }

                                  if(type[k]=='Q'){

                                                int h=0;

                                                for(int i=0;i<x;++i){

                                                       tab[k][h]=stack[pocetak+i];

                                                       ++h;

                                                       //printf("%c",stack[i+pocetak]);

                                                       }

                                               

                                               

                                               

                                                }

                                 

                                 

                                 

                    }

/*                   

for(int i=0;i<brojac;++i)

        printf("%c",stack[i+pocetak]);

printf("  %c",type);*/

if(k!=4)

        scanf("\n");}

}  

  for(int i=0;i<5;++i)

          for(int j=0;j>-1;++j){

                  printf("%c ",tab[i][j]);

                  if(tab[i][j+1]=='z'){

                                       printf("\n");

                                      break;

                                      }

                 

                  } 

   

   

    scanf("%%");

return 0;}