在远古时代,当炼金术士们寻找黄金时,世人共知晓 $N$ 种不同的物质,分别用 $1$ 到 $N$ 表示。在多年的辛勤工作和寻找秘密配方的过程中,炼金术士们发现了一系列有趣的规律——炼金反应。在一次反应中,可以将物质集合 $\{X_1, X_2, \dots, X_L\}$ 转化为另一个物质集合 $\{Y_1, Y_2, \dots, Y_R\}$。例如,物质集合 $\{1, 4, 5\}$ 可能会发生一次反应并创建新的物质集合 $\{2, 6\}$。
Joško 是一位现代炼金术士,拥有 $M$ 种不同的物质,分别记为 $A_1, A_2, \dots, A_M$。他拥有该集合中每种物质的无限数量。Joško 想知道利用古老炼金术士的反应列表,他可以创建出哪些物质,因此他请求你帮助他解决这个问题。
输入格式
输入的第一行包含两个整数 $N$ 和 $M$($1 \le M \le N \le 100\,000$),表示题目中的数量。
第二行包含 $M$ 个整数 $A_i$($1 \le A_i \le N$),表示 Joško 最开始拥有的物质编号。
第三行包含整数 $K$($1 \le K \le 100\,000$),表示已知反应的数量。
接下来的 $3 \cdot K$ 行包含反应列表。每个反应通过以下方式用 3 行描述:
- 第一行包含整数 $L$ 和 $R$($1 \le L, R \le N$)。
- 第二行包含 $L$ 个互不相同的整数 $X_i$($1 \le X_i \le N$)。
- 第三行包含 $R$ 个互不相同的整数 $Y_i$($1 \le Y_i \le N$)。
- 这描述了一个反应,该反应将物质集合 $\{X_1, X_2, \dots, X_L\}$ 转化为物质集合 $\{Y_1, Y_2, \dots, Y_R\}$。
所有 $L$ 值的总和不超过 $100\,000$。
所有 $R$ 值的总和不超过 $100\,000$。
输出格式
输出的第一行必须包含整数 $X$,表示可以获得的物质数量。
输出的第二行必须包含 $X$ 个互不相同的整数 $B_i$,按升序排列,表示可以获得的物质编号。
子任务
在占总分 60% 的测试数据中,满足:
- $N, K \le 500$。
- 所有 $L$ 值的总和以及所有 $R$ 值的总和均不超过 $500$。
样例
输入样例 1
4 2 1 2 2 2 1 1 2 3 2 1 1 3 4
输出样例 1
4 1 2 3 4
输入样例 2
6 3 1 4 5 3 3 2 2 3 4 1 6 1 3 4 1 5 6 1 1 6 2
输出样例 2
5 1 2 4 5 6
说明
样例 1 说明:
共有 2 个反应。 第一个反应将物质集合 $\{1, 2\}$ 转化为物质集合 $\{3\}$。 第二个反应将物质集合 $\{1, 3\}$ 转化为物质集合 $\{4\}$。 Joško 最初拥有集合 $\{1, 2\}$ 中的物质。 使用第一个反应,Joško 可以获得物质 $3$,之后他拥有集合 $\{1, 2, 3\}$ 中的物质。 此后,使用第二个反应,他还可以获得物质 $4$。
样例 2 说明:
Joško 最初拥有集合 $\{1, 4, 5\}$ 中的物质。 使用第二个反应,可以获得物质 $6$,之后可以应用第三个反应,得到物质 $2$。 第一个反应无法应用,因为 Joško 没有物质 $3$。