#13. 最近公共祖先

最近公共祖先

Description

一棵树如下图所示,每个节点都标有{11,22,···,1616}的整数,节点88是树根。若节点xx位于根和yy之间的路径中,则x是y的祖先,节点也是自己的祖先。8844101016161616的祖先,8844667777的祖先。若xxyy的祖先和zz的祖先,则xx被称为yyzz的公共祖先,因此8844161677的公共祖先。若xxyyzz的公共祖先并且在它们的公共祖先中最接近yyzz,则xx被称为yyzz的最近公共祖先,161677的最近公共祖先是44.若yyzz的祖先,则yyzz的最近公共祖先是yy,441212的最近公共祖先是44.编写一个程序,找到树中两个不同节点的最近公共祖先。 image

Format

Input

11行包含一个整数TT,表示测试用例的数量。

每个测试用例的第11行都包含整数N(2N10,000)N(2≤N≤10,000),表示树中的节点数。节点用1 N1~N标记。

接下来的N1N-1行,每行都包含一对表示边的整数,第11个整数是第22个整数的父节点(有NN个节点的树则恰好有N1N-1条边)。

每个测试用例的最后一行都包含两个不同的整数,求其最近公共祖先。

Output

对每个测试用例,都单行输出两个节点的最近公共祖先。

Samples

2
16
1 14
8 5
10 16
5 9
4 6
8 4
4 10
1 13
6 15
10 11
6 7
10 2
16 3
8 1
16 12
16 7
5
2 3
3 4
3 1
1 5
3 5
4
3