Splice
For n lists Li (i=0,1,...,n−1), perform a sequence of the following operations.
insert(t, x): Insert an integer x at the end of Lt.
dump(t): Print all elements in Lt.
splice(s, t): Transfer elements of Ls to the end of Lt. Ls becomes empty.
In the initial state, Li (i=0,1,...,n−1) are empty.
The input is given in the following format.
n q
query1
query2
:
queryq
Each query queryi is given by
0 t x
or
1 t
or
2 s t
where the first digits 0, 1 and 2 represent insert, dump and splice operations respectively.
1≤n≤1,000
1≤q≤500,000
For a splice operation, s≠t
For a splice operation, Ls is not empty
The total number of elements printed by dump operations do not exceed 1,000,000
−1,000,000,000≤x≤1,000,000,000
For each dump operation, print elements of the corresponding list in a line. Separete adjacency elements by a space character (do not print the space after the last element). Note that, if the list is empty, an empty line should be printed.