Dylans loves tree

Accepts: 37
Submissions: 262
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 131072/131072 K (Java/Others)
问题描述
Dylans有一棵$N$个点的树。每个点有点权。树上节点标号为$1 \sim N$。
他得到了$Q$个询问,形式如下:
①$0 \ x \ y$:把第$x$个点的点权修改为$y$。
②$1 \ x \ y$:对于$x \sim y$路径上的每一种点权,是否都出现偶数次?
保证每次询问的路径上最多只有一种点权的出现次数是奇数次。

$1 \leq N,Q \leq 100000$, 点权$A[i]∈N$,且都 $\leq 100000$
输入描述
第一行一个正整数$T$表示数据组数($T \leq 3$且最多只有一组数据$N > 1000$)
第一行两个数$N、Q$表示树的点数和询问个数。
接下来$N - 1$行每行一对数$(x, y)$表示树上的一条边。
接下来一行$N$个数表示每个点的点权。
接下来$Q$行每行三个数$(opt, x, y)$表示询问。
输出描述
对于每个②询问,如果全是偶数输出“-1",否则输出出现奇数次的权值。
输入样例
1
3 2
1 2
2 3
1 1 1
1 1 2
1 1 3
输出样例
-1
1
Hint
hack数据里N和Q必须小于等于10000,且对于读入的每一行末尾不应该有多余的空格。