#1415. Hide-And-Seek Game

Hide-And-Seek Game

暑假里,Serenade和Rhapsody在一座树形公园里玩捉迷藏。树的每条边的权重为1。Serenade在 SaS_a TaT_a 之间来回跑 (SaTaS_a \ne T_a),而Rhapsody在 SbS_bTbT_b 之间来回跑 (SbTb S_b \ne T_b)。 然而,Aria 不想和他们一起到处乱跑,他只想知道 Serenade 和 Rhapsody 相遇的最早地点。请输出该位置的标识号。如果永远不会相遇,则输出-1

更具体地说,Serenade 从 SaS_a 开始,每次向 TaT_a 移动并经过一条边。 一旦到达 TaT_a,Serenade 就会向 SaS_a 移动。到达 SaS_a 后,Serenade 又会向 TaT_a 移动,依此类推。 Rhapsody遵循类似的运动模式。

请注意,这个公园非常神秘,因此Serenade和Rhapsody不会在边上相遇(您可以假设他们会选择不同的路径来经过相同的边)。

Input

输入由多个测试用例组成。 第一行包含一个整数 tt(1t5001 \le t \le 500) — 测试用例的数量。 测试用例的描述如下。

每个测试用例的第一行包含两个整数 nnmm (2n,m31032 ≤ n, m ≤ 3 \cdot 10^3) — 给定树中的顶点数和问题数。

接下来的 n1n − 1 行包含两个整数 uuvv (1u,vn,uv1 \le u, v \le n, u \ne v),这意味着顶点 uuvv 之间有一条边。

接下来的 mm 行包含四个整数 SaS_aTaT_aSbS_bTbT_b (1Sa,Ta,Sb,Tbn1 \le S_a, T_a, S_b, T_b \le n, SaTaS_a \ne T_aSbTb S_b \ne T_b)。

保证给定的图是一棵树。

数据保证nn值超过400的组不会超过20个。

数据保证mm值超过400的组不会超过20个。

Output

对于每个测试用例,打印一个整数 - Serenade 和 Rhapsody 将遇到的位置。如果永远不会相遇,则输出-1

Example

1
9 4
1 2
1 9
2 3
2 6
3 4
3 5
6 7
6 8
4 7 5 8
4 7 2 8
4 5 3 6
4 5 5 7
3
6
-1
3

Limitation

时间限制:5秒

内存限制:128 MB