#LQ1456. 异或和

异或和

问题描述

给一棵含有 nn 个结点的有根树,根结点为 11,编号为 ii 的点有点权 ai(i[1,n])a_i(i∈[1,n])。现在有两种操作,格式如下:

  • 11 xx yy:该操作表示将点 xx 的点权改为 yy
  • 22 xx:该操作表示查询以结点 xx 为根的子树内的所有点的点权的异或和。

现有长度为 mm 的操作序列,请对于每个第二类操作给出正确的结果。

输入格式

输入的第一行包含两个正整数 n,mn,m,用一个空格分隔。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,…,a_n,相邻整数之间使用一个空格分隔。

接下来 n1n-1 行,每行包含两个正整数 ui,viu_i,v_i,表示结点 uiu_iviv_i 之间有一条边。

接下来 mm 行,每行包含一个操作。

输出格式

输出若干行,每行对应一个查询操作的答案。

样例

4 4
1 2 3 4
1 2
1 3
2 4
2 1
1 1 0
2 1
2 2

样例输出

4
5
6

评测用例规模与约定

对于 30%30\% 的评测用例,n,m1000n,m≤1000

对于所有评测用例,1n,m1000001≤n,m≤1000000ai,y1000000≤a_i,y≤1000001ui,vi,xn1≤u_i,v_i,x≤n