Pondo LCA I


You are given a tree with nn vertices, rooted at vertex 11, and qq queries. Each query gives two vertices uu and vv. Output the lowest common ancestor of uu and vv.

The lowest common ancestor of uu and vv is the deepest vertex that lies on both the path from the root to uu and the path from the root to vv. In particular, lca(u,u)=u\mathrm{lca}(u, u) = u, and if uu is an ancestor of vv then lca(u,v)=u\mathrm{lca}(u, v) = u.

Solve the queries with an Euler tour. Unlike the enter/exit tour (first and last visit only), record a vertex every time you visit it: when you first enter it, and again each time you return from a child. The lowest common ancestor of uu and vv is then the vertex of minimum depth on the tour between their first visits.

The bounds are small, so you may scan that range in O(n)O(n) time per query.

Input

The first line contains two integers nn and qq.

Each of the next n1n - 1 lines contains two integers uu and vv, denoting an undirected edge between uu and vv.

Each of the next qq lines contains two integers uu and vv, the vertices of one query.

Vertices are numbered 11 through nn. The edges form a tree.

Output

Print qq lines. The ii-th line should contain the lowest common ancestor of the ii-th query.

Constraints

  • 1n,q1021 \le n, q \le 10^2
  • 1u,vn1 \le u, v \le n

Example 1

Input 1
5 5
1 2
2 3
2 4
1 5
2 5
5 2
3 4
2 3
4 4
Output 1
1
1
2
2
4
Explanation

The tree, rooted at 11, looks like this:

Code 1
      1
     / \
    2   5
   / \
  3   4
  • lca(2,5)=1\mathrm{lca}(2, 5) = 1
  • lca(5,2)=1\mathrm{lca}(5, 2) = 1
  • lca(3,4)=2\mathrm{lca}(3, 4) = 2
  • lca(2,3)=2\mathrm{lca}(2, 3) = 2
  • lca(4,4)=4\mathrm{lca}(4, 4) = 4

Example 2

Input 2
10 10
4 7
7 8
2 4
6 7
8 10
5 8
2 9
3 7
1 9
2 9
6 8
8 9
2 8
8 9
3 8
4 10
5 7
5 6
3 9
Output 2
9
7
9
2
9
7
4
7
7
9

Comments0


No comments yet

Be the first to comment.

New comment


Log in to join the discussion.