给定一棵包含 $N$ 个顶点的树。
在这棵树上进行一场捉人游戏。游戏包含若干轮。
每一轮中有两名玩家:狮子(捕捉方)和斑马(逃跑方)。
在每一轮开始时,斑马和狮子位于两个不同的顶点。狮子始终知道斑马的位置,并以每秒一条边的速度追赶它。斑马不知道狮子的位置,但始终知道它与狮子之间的距离。基于这些信息,斑马每秒钟做出以下两种选择之一: 花费 1 秒移动到任意相邻顶点。 在当前顶点停留 1 秒。
当斑马在某条边上或某个顶点与狮子相遇时,该轮结束。如果玩家沿着同一条边相向而行,相遇发生在他们开始移动后的 0.5 秒。斑马采取的策略是使其被狮子抓到的时间(在所有可能的狮子初始位置中取最小值)最大化。
给定 $Q$ 轮游戏。在第 $i$ 轮中,斑马从顶点 $v_i$ 开始,且与狮子的初始距离为 $d_i$。对于每一轮,请找出当双方都采取最优策略时,该轮结束的最短时间。
输入格式
第一行包含两个整数 $N$ 和 $Q$:树的顶点数和游戏轮数($2 \le N \le 10^5$,$1 \le Q \le 10^5$)。
接下来的 $N-1$ 行,每行包含两个整数 $a_i$ 和 $b_i$:表示树中相连的两个顶点。你可以假设给定的图是一棵树。
接下来的 $Q$ 行,每行描述一轮游戏,包含两个整数 $v_j$ 和 $d_j$($1 \le v_j \le N$,$1 \le d_j \le N-1$):斑马的起始顶点以及该轮开始时斑马与狮子之间的距离。你可以假设至少存在一个顶点 $w_j$ 使得 $v_j$ 与 $w_j$ 之间的距离等于 $d_j$。
输出格式
对于每个询问,输出一个整数:当双方都采取最优策略时,该轮结束的最短时间。
样例
样例输入 1
5 2 1 2 2 3 3 4 4 5 1 4 3 1
样例输出 1
4 1
样例输入 2
11 2 1 2 2 3 1 4 4 5 1 6 6 7 7 8 1 9 9 10 10 11 3 2 10 4
样例输出 2
2 5
说明
在样例 1 的第一轮开始时,斑马位于顶点 1,与狮子的距离为 4,因此我们可以推断狮子位于顶点 5。在这种情况下,最优策略是在顶点 1 尽可能久地停留,答案为 4。
在第二轮开始时,斑马位于顶点 3,与狮子的距离为 1,因此我们可以推断狮子要么位于顶点 2,要么位于顶点 4。
如果斑马向顶点 2 的方向移动,如果狮子从顶点 2 出发,狮子将在 0.5 秒后在边上与斑马相遇;如果狮子从顶点 4 出发,狮子将在 3 秒后在顶点 1 与斑马相遇。因此,在这种策略下,斑马被狮子抓到的最短时间为 0.5。
类似地,如果斑马向顶点 4 的方向移动,被狮子抓到的最短时间也是 0.5。
如果斑马停留在顶点 3,如果狮子从顶点 2 出发,它们将在 1 秒后相遇;如果狮子从顶点 4 出发,它们也将在 1 秒后相遇。因此,答案为 1。