编程题
### 问题描述
卓儿种了一棵桑树(根节点为 $0$)。一开始,每个节点都长着一个不同大小的桑果。随着时间的流逝,每个节点都会长出新的桑果,意味着之前的桑果仍然存在于给定的节点,同时保持不同大小。
卓儿观察每一个果实,并且对于每一个新的果实,她要求你告诉她在给定节点的子树中有多少更小的果实。
### 输入格式
第一行包含两个整数 $N$ 和 $Q$,表示桑树的大小。
接下来一行包含 $N$ 个整数 $A_i$,表示每个节点上桑果的大小。
接下来的 $N-1$ 行中,每行包含两个整数 $a$ 和 $b$,表示给定节点之间的分支。
接下来的 $Q$ 行中,每行包含两个整数 $a$ 和 $S$,表示新果实长在的节点和果实的大小。
### 输出格式
对于每个查询,输出在新的桑果长出的节点的子树中生长的更小的桑果的数量。
### 样例输入
```
7 8
10 9 13 17 11 20 18
0 4
0 1
1 2
1 3
2 5
2 6
0 21
0 8
2 15
3 22
1 14
2 19
0 12
1 16
```
### 样例输出
```
7
0
1
1
2
3
4
4
```
### 评测数据规模
$1 \leq N, Q \leq 10^4$,$0 \leq A_i \leq 10^6$,$0 \leq a, b \leq N-1$,$0 \leq S \leq 10^6$。