PRJAN15F - Stack Overflow

Stack is a basic data structure. Where 3 operation can be done-

  1. Push: You can push object to the stack,
  2. Pop: You can pop the object to the stack,
  3. Top: You can check the value of the top object.

For further details you can get idea here (if you really don’t know): en.wikibooks.org/wiki/Data_Structures/Stacks_and_Queues

Now we have a problem here, there are N stack in front of you. they are numbered from 1 to N. Each of them are initially empty. Now you will have Q operations. Each operation can be one the below 4 types:

  1. push i x, Push a value of x to stack numbered i,
  2. pop i, Pop value from the stack numbered i, if stack is empty discard the operation,
  3. put i j, Put the j’th stack on top of the i’th stack. So there will be no element left on the j’th stack,
  4. top i, Print the value of the top element of ith stack. If stack is empty print “Empty!”.

Check the Sample IO for further understanding...

Input

Input starts with an integer T (≤ 5), denoting the number of test cases.

The first line of a case is a blank line. The next line contains two integers N (1 ≤ N ≤ 104), Q(1 ≤ Q ≤ 5*104).

The next Q lines will contain an operation as mentioned above. (1 ≤ I, j ≤ N), (1 ≤ x ≤ 105)

Output

For each test case, print the case number in a single line. Then for each 4th type operation you should print the value or “Empty!” if the stack is empty.

Example

Input:
1

3 18
push 1 1
push 2 2
push 3 3
push 3 4
top 1
top 2
top 3
put 1 3
pop 2
top 1
top 2
top 3
pop 1
top 1
pop 1
top 1
pop 1
top 1

Output:
Case 1:
1
2
4
4
Empty!
Empty!
3
1
Empty!

Judge data is huge so use faster IO like scanf/printf.

Problem-setter: Ahmad Faiyaz


Added by:Shafaet
Date:2015-01-31
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64 JS-MONKEY
Resource:Progkriya Contest January 2015

hide comments
2015-02-09 15:44:06 numerix
Type 4 needs an additional information: It is not clear according to the description, whether "put i i" results in an empty stack or a doubled stack.

Last edit: 2015-02-09 15:44:28
2015-02-14 06:29:46 shiva
There is a tricky case in "put i j" where i = j
2015-02-01 23:47:02 Anubhav Gupta
getting sigsegv :(
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.