// Bryan Zhu

// Holmdel High School

// Contest 4 2009-2010

// Intermediate 3 Division

 

import java.util.*;

 

class ACSLStackQueue

{

            public static void main(String args[])

            {

                        Scanner kb = new Scanner(System.in);

                        String input;

                        System.out.println("This program performs non-standard operations on stacks and queues.");

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

                        {

                                    System.out.println();

                                    System.out.println("Please enter input with operations separated by one comma:");

                                    System.out.print(loop+1 + ". ");

                                    input = kb.nextLine().toUpperCase();

                                    StringTokenizer sT = new StringTokenizer(input,",");

                                    int SoQ = 0;

                                    ArrayList<String> stackqueue = new ArrayList<String>(5);

                                    stackqueue.add("A");

                                    stackqueue.add("B");

                                    stackqueue.add("C");

                                    stackqueue.add("D");

                                    stackqueue.add("E");

                                    if (sT.nextToken().equals("Q"))

                                                SoQ = 1-SoQ;

                                    while(sT.hasMoreTokens())

                                    {

                                                String operation = sT.nextToken();

                                                if (operation.substring(0,3).equals("POP"))

                                                {

                                                            if (SoQ == 0)

                                                                        for (int i=0; i<Integer.parseInt(operation.substring(4)); i++)

                                                                                    stackqueue.remove(stackqueue.size()-1);

                                                            else

                                                                        for (int i=0; i<Integer.parseInt(operation.substring(4)); i++)

                                                                                    stackqueue.remove(0);

                                                }

                                                if (operation.substring(0,3).equals("PSH"))

                                                            stackqueue.add(operation.substring(4));

                                                if (operation.substring(0,3).equals("DUP"))

                                                            for (int i=0; i<Integer.parseInt(operation.substring(4)); i++)

                                                                        stackqueue.add(stackqueue.get(i));

                                                if (operation.substring(0,3).equals("SWP"))

                                                {

                                                            String[] temp = new String[Integer.parseInt(operation.substring(4))];

                                                            for (int i=0; i<temp.length; i++)

                                                            {

                                                                        temp[i] = stackqueue.get(i);

                                                                        stackqueue.set(i,stackqueue.get(stackqueue.size()-temp.length+i));

                                                                        stackqueue.set(stackqueue.size()-temp.length+i,temp[i]);

                                                            }

                                                }

                                                if (operation.substring(0,3).equals("SWH"))

                                                            SoQ = 1-SoQ;

                                                if (operation.substring(0,3).equals("CRC"))

                                                {

                                                            if (SoQ == 0)

                                                                        for (int i=0; i<Integer.parseInt(operation.substring(4)); i++)

                                                                                    stackqueue.add(0,stackqueue.remove(stackqueue.size()-1));

                                                            else

                                                                        for (int i=0; i<Integer.parseInt(operation.substring(4)); i++)

                                                                                    stackqueue.add(stackqueue.remove(0));

                                                }

                                                if (operation.substring(0,3).equals("PIN"))

                                                            stackqueue.add(0,operation.substring(5));

                                                if (operation.substring(0,3).equals("PRT"))

                                                {

                                                            if (SoQ == 0)

                                                            {

                                                                        System.out.print(loop+1 + ". ");

                                                                        for (int i=0; i<Integer.parseInt(operation.substring(4))-1; i++)

                                                                                    System.out.print(stackqueue.get(stackqueue.size()-Integer.parseInt(operation.substring(4))+i) + ", ");

                                                                        System.out.println(stackqueue.get(stackqueue.size()-1));

                                                            }

                                                            else

                                                            {

                                                                        System.out.print(loop+1 + ". ");

                                                                        for (int i=0; i<Integer.parseInt(operation.substring(4))-1; i++)

                                                                                    System.out.print(stackqueue.get(i) + ", ");

                                                                        System.out.println(stackqueue.get(Integer.parseInt(operation.substring(4))-1));

                                                            }

                                                }

                                    }

                        }

            }

}