QUEUESEQ - IITKESO207PA1Q3

no tags 

In this problem, you will implement a sequence of queues. This means that each element of the sequence will be a queue. The operations are as follows:

1) Enqueue(a, i): Add element a to the front of queue i.

2) Dequeue(i): Dequeue frm Queue i.

3) Is_Empty(i): True if Queue i is empty, false otherwise.

Note: The queue sequence is 1 indexed.

Input

First line contains t: the number of test cases.

The second line contains two space separated integers: n and q denoting the number of elements in the sequeunce and the number of queries respectively. The next q lines contain the queries.

Each query contains two or three space separated integers. Opcodes are: 1 for Enqueue(a, i), 2 for Dequeue(i) and 3 for Is_Empty(i).

If opcode is 1, the query has two more space separated integers a and i denoting the element to be enqueued and the queue respectively.

If opcode is 2 or 3, the query has another space separated integer denoting the queue on which the operation is to be performed.

Output

Enqueue(a, i) should return a.

Dequeue(i) should return the element dequeued. If the queue is empty, print "Empty" (without quotes)

Is_Empty(i) should return True or False depending on whether or not the queue is empty.

Constraints

1 <= t <= 10
1 <= n <= 100
1 <= q <= 100000
1 <= a <= 10^9

Example

Input:
1
3 5
1 6 2
1 7 3
2 1
2 3
3 1
Output:
6
7
Empty
7
True


Added by:Programming Club, IITK
Date:2018-01-11
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C CPP C++ 4.3.2 CPP14 C99