小火车

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

3780

 

春节到啦,bLue 获得了一份礼物,就是一套小火车玩具。他表示喜欢得不得了,并且热衷于拼接小火车。

现在,bLue 有 n 列小火车,每列小火车都有标有序号(从 1 开始)的火车头和若干标有数字的车厢组成。他可以随性地把两列小火车 a, b 拼接为一列火车,即 b 火车的车头连接到 a 火车的最后一节车厢后面。并且,他还想知道某个火车头后面的车厢都有哪些。

当然,最近 bLue 越来越懒了,他会给出 m 次操作让你来帮他完成。

其中操作分为 2 种:

  • 操作 1:把 b 火车连接到 a 火车的最后面。
  • 操作 2:询问序号为 a 的火车头后面的所有车厢(以车厢上的数字表示)。

Input

输入数据有多组(数据组数不超过 20),到 EOF 结束。

对于每组数据:

  • 第 1 行输入一个整数 n (1 <= n <= 1000),表示 bLue 初始时有 n 列小火车。
  • 接下来有 n 行,每行先输入一个整数 len (1 <= len <= 100),表示该列小火车的车厢数。其后紧跟 len 个用空格隔开的整数 v (0 <= v <= 100),表示每节车厢上的数字。输入按照火车头序号从 1 到 n 给出。
  • 之后输入一个整数 m (1 <= m <= 1000),表示操作次数。
  • 最后有 m 行,每行的输入格式根据操作类型有如下情况 (序号均在 1~n 的范围内):
    • 1 a b: 把序号为 b 的火车连接到序号为 a 的火车的后面。
    • 2 a: 输出序号为 a 的火车头后面的所有车厢。

Output

对于每组数据中的每次类型为 2 的操作,输出 1 行,表示车头后的所有车厢(以车厢上的数字表示),两两之间用空格隔开。

Sample Input

5
3 1 2 3
2 5 10
1 6
4 9 9 8 8
2 3 3
10
1 1 3
2 1
2 3
1 2 4
2 2
1 1 5
2 1
1 5 2
2 1
2 5

Sample Output

1 2 3 6
6
5 10 9 9 8 8
1 2 3 6 3 3
1 2 3 6 3 3 5 10 9 9 8 8
3 3 5 10 9 9 8 8

Hint

Source

【SDUT Round #2 - 2017 新春大作战】bLue