2588 - Spoj 10628. Count on a tree

给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u \operatorname{xor} \text{lastans}v这两个节点间第K小的点权。其中\text{lastans}是上一个询问的答案,初始为0,即第一个询问的u是明文。

输入

第一行两个整数N,M

第二行有N个整数,其中第i个整数表示点i的权值。

后面N-1行每行两个整数(x,y),表示点x到点y有一条边。

最后M行每行两个整数(u,v,k),表示一组询问。

输出

M行,表示每个询问的答案。最后一个询问不输出换行符

样例

输入

8 5
105 2 9 3 8 5 7 7
1 2
1 3
1 4
3 5
3 6
3 7
4 8
2 5 1
0 5 2
10 5 3
11 5 4
110 8 2

输出

2
8
9
105
7 

提示

N,M\leq100000

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题