#391. 最近公共祖先

最近公共祖先

题目描述

给定一棵根节点为 11 的多叉树,请求出指定两个点直接最近的公共祖先。

输入格式

第一行包含两个正整数 NN , MM ,分别表示树的结点个数和询问的个数。

接下来 N1N-1 行每行包含两个正整数 xx , yy ,表示 xx 结点和 yy 结点之间有一条直接连接的边(数据保证可以构成树)。

接下来 MM 行每行包含两个正整数 aa , bb,表示询问 aa 结点和 bb 结点的最近公共祖先。

输出格式

输出包含 MM 行,每行包含一个正整数,依次为每一个询问的结果。

样例

Input

5 5
1 2
1 3
1 4
4 5
1 5
3 1
5 5
2 1
1 2

Output

1
1
5
1
1

数据范围与提示

对于 30%30\% 的数据: N10M10N \le10,M \le 10

对于 70%70\% 的数据: N10000M10000N \le 10000,M \le 10000

对于 100%100\% 的数据: N500000M500000N \le 500000,M \le 500000