P24285 [AtCoder] Subtree K
提高
题目描述

Problem Statement

We have a rooted tree with N vertices. The vertices are numbered 1 through N, and the root is Vertex 1.
The i-th edge connects Vertices A_i and B_i.
Vertex i has an integer X_i written on it.
You are given Q queries. For the i-th query, given a pair of integers (V_i,K_i), answer the following question.

  • Question: among the integers written on the vertices in the subtree rooted at Vertex V_i, find the K_i-th largest value.

Input

Input is given from Standard Input in the following format:
N Q
$X_1 \ldots X_N$
A_1 B_1
$\vdots$
A_{N-1} B_{N-1}
V_1 K_1
$\vdots$
V_Q K_Q

Output

Print Q lines. The i-th line should contain the response to the i-th query.

Constraints

  • $2 \leq N \leq 10^5$
  • $0\leq X_i\leq 10^9$
  • $1\leq A_i,B_i\leq N$
  • $1\leq Q \leq 10^5$
  • $1\leq V_i\leq N$
  • $1\leq K_i\leq 20$
  • The given graph is a tree.
  • The subtree rooted at Vertex V_i has K_i or more vertices.
  • All values in input are integers.

Sample Input 1

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

Sample Output 1

4
5

The tree given in this input is shown below.

For the 1-st query, the vertices in the subtree rooted at Vertex 1 are Vertices 1, 2, 3, 4, and 5, so print the 2-nd largest value of the numbers written on these vertices, 4.
For the 2-nd query, the vertices in the subtree rooted at Vertex 2 are Vertices 2, 3, and 5, so print the 1-st largest value of the numbers written on these vertices, 5.

Sample Input 2

6 2
10 10 10 9 8 8
1 4
2 1
2 5
3 2
6 4
1 4
2 2

Sample Output 2

9
10

Sample Input 3

4 4
1 10 100 1000
1 2
2 3
3 4
1 4
2 3
3 2
4 1

Sample Output 3

1
10
100
1000

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
5 2 1 2 3 4 5 1 4 2 1 2 5 3 2 1 2 2 1
样例输出
4 5