//Jeffrey Dudek

//Cary Academy ACSL 4

//SR-3 Division

 

loop = 1

qs = 1

while loop == 1:

    qs = "na"

    oper = raw_input("Enter 's' or 'q': ")

    oper = oper.upper()

    if oper == "S":

        stack = ["A", "B", "C", "D", "E"]

        total = stack

        qs = "stack"

    elif oper == "Q":

        queue = ["A", "B", "C", "D", "E"]

        total = queue

        qs = "queue"

    while loop == 1:

        if qs == "stack":

            while loop == 1:

                oper = raw_input("Enter operation: ")

                oper = oper.upper()

                if oper[4:].isdigit() == True:

                    item = int(oper[4:])

                else:

                    item = oper[4:]

                oper = oper[0:3]

                if oper == "POP":

                    del total[-item:]

                if oper == "PSH":

                    total.append(item)

                if oper == "DUP":

                    item2 = item

                    item = 0

                    while item != item2:

                        total.append(total[item])

                        item = item + 1

                if oper == "SWP":

                    swptemp1 = total[0:item]

                    swptemp2 = total[-item:]

                    del total[0:item]

                    item2 = item - 1

                    while item2 != -1:

                        total.insert(0, swptemp2[item2])

                        item2 = item2 - 1

                    del total[-item:]

                    item2 = 0

                    while item2 != item:

                        total.append(swptemp1[item2])

                        item2 = item2 + 1

                if oper == "SWH":

                    queue = total

                    total = queue

                    qs = "queue"

                    break

                if oper == "CRC":

                    temp = item

                    temp2 = 0

                    while temp != 0:

                        total.insert(temp2, total[-temp])

                        temp = temp - 1

                        temp2 = temp2 + 1

                    del total[-item:]

                if oper == "INS":

                    place = int(item[0]) - 1

                    part = item[3]

                    if place == 0:

                        total.append(part)

                    else:

                        total.insert(-place, part)

                if oper == "PIN":

                    total.insert(0, item)

                if oper == "SRT":

                    if item == "A":

                        total.sort()

                    if item == "D":

                        total.sort()

                        total.reverse()

                if oper == "PRT":

                    print total[-item:]

                    qs = "done"

                    break

        if qs == "queue":

            while loop == 1:

                oper = raw_input("Enter operation: ")

                oper = oper.upper()

                if oper[4:].isdigit() == True:

                    item = int(oper[4:])

                else:

                    item = oper[4:]

                oper = oper[0:3]

                if oper == "POP":

                    pop = item

                    while pop != 0:

                        total.pop(0)

                        pop = pop - 1

                if oper == "PSH":

                    queue.append(item)

                if oper == "DUP":

                    item2 = item

                    item = 0

                    while item != item2:

                        total.append(total[item])

                        item = item + 1

                if oper == "SWP":

                    swptemp1 = total[0:item]

                    swptemp2 = total[-item:]

                    del total[0:item]

                    item2 = item - 1

                    while item2 != -1:

                        total.insert(0, swptemp2[item2])

                        item2 = item2 - 1

                    del total[-item:]

                    item2 = 0

                    while item2 != item:

                        total.append(swptemp1[item2])

                        item2 = item2 + 1

                if oper == "SWH":

                    stack = total

                    total = stack

                    qs = "stack"

                    break

                if oper == "CRC":

                    temp = 0

                    while temp != item:

                        total.append(total[temp])

                        temp = temp + 1

                    del total[:item]

                if oper == "INS":

                    place = int(item[0]) - 1

                    part = item[3]

                    total.insert(place, part)

                if oper == "PIN":

                    total.insert(0, item)

                if oper == "SRT":

                    if item == "A":

                        total.sort()

                    if item == "D":

                        total.sort()

                        total.reverse()

                if oper == "PRT":

                    print total[:item]

                    qs = "done"

                    break

        if qs == "done":

            break

        if qs == "stack":

            continue

        else:

            print "Stack or queue not defined."

            break