给定两棵树 $A$ 和 $B$,每棵树都有 $N$ 个顶点。两棵树具有相同的标号顶点集 $\{1, 2, \dots, N\}$。
对于每个 $i$($1 \le i \le N - 1$),树 $A$ 的第 $i$ 条边连接顶点 $u_i$ 和 $v_i$。对于每个 $j$($1 \le j \le N - 1$),树 $B$ 的第 $j$ 条边连接顶点 $x_j$ 和 $y_j$。
对于每个 $i = 1, 2, \dots, N - 1$,解决以下问题。
- 求一个满足 $1 \le j \le N - 1$ 的整数 $j$,使得进行如下交换后,$A$ 和 $B$ 仍然都是树:
- 从 $A$ 中移除连接 $u_i$ 和 $v_i$ 的边,并从 $B$ 中移除连接 $x_j$ 和 $y_j$ 的边。
- 然后,向 $A$ 中添加一条连接 $x_j$ 和 $y_j$ 的边,并向 $B$ 中添加一条连接 $u_i$ 和 $v_i$ 的边。
每次交换均相互独立地从初始的树 $A$ 和 $B$ 开始考虑。
可以证明,在给定的数据范围下,对于每个 $i$,至少存在一个满足条件的整数 $j$。
输入格式
输入包含单个测试用例,格式如下。
$$ \begin{aligned} &N \\ &u_1 \ v_1 \\ &u_2 \ v_2 \\ &\vdots \\ &u_{N-1} \ v_{N-1} \\ &x_1 \ y_1 \\ &x_2 \ y_2 \\ &\vdots \\ &x_{N-1} \ y_{N-1} \end{aligned} $$
整数 $N$ 是树 $A$ 和 $B$ 的顶点数量($2 \le N \le 2 \times 10^5$)。
接下来的 $N - 1$ 行描述 $A$ 的边。对于每个 $i = 1, \dots, N - 1$,整数 $u_i$ 和 $v_i$($1 \le u_i, v_i \le N$)表示第 $i$ 条边连接顶点 $u_i$ 和 $v_i$。保证 $A$ 是一棵树。
再接下来的 $N - 1$ 行描述 $B$ 的边。对于每个 $j = 1, \dots, N - 1$,整数 $x_j$ 和 $y_j$($1 \le x_j, y_j \le N$)表示第 $j$ 条边连接顶点 $x_j$ 和 $y_j$。保证 $B$ 是一棵树。
输出格式
输出 $N - 1$ 行。对于每个 $i = 1, 2, \dots, N - 1$,第 $i$ 行应包含一个针对 $A$ 的第 $i$ 条边满足题目描述条件的整数 $j$。
如果存在多个可能的答案,你可以输出其中任意一个。
样例
输入格式 1
4 1 3 2 4 3 4 1 2 2 3 2 4
输出格式 1
1 3 2
说明
在样例输出的第一行中,对于 $i = 1$ 选择了 $j = 1$。将 $A$ 的边 $(1, 3)$ 与 $B$ 的边 $(1, 2)$ 交换后,$A$ 和 $B$ 仍然都是树。
对于 $i = 2$,$A$ 的边与所选的 $B$ 的边均为 $(2, 4)$,因此交换它们不会改变任何一棵树。其他合法的输出也是允许的。