#YHDF2200. 树的公共祖先(LCA)(3)

树的公共祖先(LCA)(3)

问题描述

给定一棵 nn 个结点的树(结点标号 1…n1 \dots n )以及树中结点的边,结点 ss 为树的根。 有 mm 次询问,请求出每次询问的两个结点 xx 和 yy 的最近的公共祖先结点。

输入格式

第 11 行输入 33 个整数 nn、mm、ss(n≤500000n≤500000,m≤500000m≤500000,1≤s≤n1≤s≤n); 接下来 n−1n-1 行,每行两个整数 aa 和 bb ,结点 aa 和 bb 是父子关系,但不保证 aa 是bb 的父,数据保证一定能构成树; 接下来 mm 行,每行两个整数 xx,yy,表示要求出 xx 和 yy 结点的公共祖先。

输出格式

输出 mm 行,每行一个整数,表示 mm 次询问求出的结果。

样例

输入

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

输出

4
4
1
4
4