Chino with Rewrite
题号:NC23862
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino如何出题。
«Rewrite»是Key社的一款非常好玩的文字冒险游戏,在游戏的背景设定里,かがり需要完成一棵世界树的重构,重写这个世界。
这很像出题呢,一开始只有几个零星的idea,慢慢地把它们组织到一起,变成了一道完整的题目。
Cocoa告诉Chino应该按照如下的方式出题:
1、起初,平面上只有个知识点,每个知识点都有一个权值,接下来LoliconAutomaton准备通过次操作将它们连成一棵知识(我们姑且称作“智慧树”):
2、操作“1 x y”表示了直接连接x,y两个知识点,并把它们的权值更新为,如果x,y已经直接或者间接地连通,忽略本次操作。其中表示“x向下取整”,例如.
3、操作“2 x y”询问的唯一路径上的知识点有几种不同的权值,如果x,y当前尚未连通,请输出-1.
现在Cocoa希望Chino能够回答每一个“2 x y”.
题目对Chino来说太难啦,你能帮一帮Chino吗?

输入描述:

第一行是两个正整数n, q;接下来一行是n个正整数Wi;接下来n-1行每行两个数u, v,描述了树上的一条边;接下来q行每行描述了一组询问

输出描述:

对于每个2 x y,你应该作出回答
示例1

输入

复制
5 8
3 2 7 6 7
1 1 2
1 1 3
2 2 3
1 2 4
2 1 5
1 2 5
1 1 5
2 3 5

输出

复制
2
-1
2