#2879. 松鼠大作战

松鼠大作战

题目描述

松鼠大作战这个游戏的完整地图,可以看做是一棵n\red{n}个节点的树,树根为1\red{1,}节点编号1\red{1}n\red{n}

每次任务可以抽象为从一个关卡u\red{u}开始,不断向上打怪升级(只能向上走),一直到关卡v\red{v}为止。(保 证v\red{v}u\red{u}的祖先)。

在一次任务开始的时候,你会得到一个武器,攻击力为c\red{c,}然后每一关都有一个武器宝箱,宝箱中的武 器有一个攻击力a[i]\red{a[i]}。如果箱子中武器的攻击力高于你手中的,你就会选择用这个武器替换手中的武 器。

这样的任务总共有q\red{q}个。给出每一个关卡中武器的攻击力,以及q\red{q}次任务的起点与终点,以及任务初始 时的武器攻击力。

现在想知道,对于每个任务,你会更换多少次武器。

输入格式

第一行,两个正整数 n,q\red{n,q}。(2\red{2≤}n\red{n≤}100000,1\red{100000,1≤}q\red{q≤}100000\red{100000)}

第二行,n\red{n }个正整数 a[i]\red{a[i] }描述每个关卡上武器的攻击力。

接下来 n1\red{n-1 }行,每行描述一条道路 x,y(1<=x,y<=n)\red{x,y(1<=x,y<=n),}表示有一条连接 x\red{x }y\red{y }的道路。

接下来 q\red{q }行,每行描述一次行程 u,v,c(1<=u,v<=n)\red{u,v,c(1<=u,v<=n)}

输出格式

输出共q\red{q}行,对于每次任务输出一行表示更换武器的次数。

样例

输入样例

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

输出样例

2
1
1
0

提示

对于 10%\red{10\% }的数据,2<=n<=100,1<=q<=100\red{2<=n<=100,1<=q<=100}

对于 22.5%\red{22.5\% }的数据,2<=n<=5000,1<=q<=2000\red{2<=n<=5000,1<=q<=2000 }

对于 100%\red{100\% }的数据,2<=n<=105\red{2<=n<=10^5 }