#DLNU1012. 树学家III

树学家III

Description

\hspace{15px}大家都说小憨出的树学家II太简单了,小憨一怒之下当场就出了这一道题:
\hspace{15px}小憨拿到了一棵由 nn 个节点,节点编号从 11nn 构成的以 11 为根节点的有根,每个节点都有一个位运算符 opiop_i 和权值 aia_i。一个数值 valval 经过节点 ii 时会被替换为其位运算符和权值进行运算后的结果,更形式化地讲:valval opi aival \larr val \space op_i \space a_i
\hspace{15px}现在小憨共有 qq 次操作:

  • 操作 1:将节点 xx 的操作符修改为 opop,权值修改为 valval
  • 操作 2:查询数值 valval 从节点 xx 开始,持续运算到节点 yy 的结果。

\hspace{15px}是指这样的一张图,其由 nn 个节点和 n1n-1 条边构成,其上的任意两个点都连通,且不存在环。

Format

Input

\hspace{15px}第一行输入两个整数 n,q (1n,q1e5)n,q \space (1 \leq n, q \leq 1e5) 表示节点的数量和操作次数。
\hspace{15px}第二行有 nn 个位运算操作符 opopopiop_i 表示第 ii 个节点的操作符。(opi{&, , ^}( op_i \in \{ \& , \mid \space, \widehat\space \} ))
\hspace{15px}第三行有 nn 个非负整数 ai (0ai<231)a_i \space (0 \leq a_i < 2^{31}) 表示节点 ii 的权值。
\hspace{15px}此后 n1n-1 行,第 ii 行输入两个整数 uiu_ivi (1ui,vin; uivi)v_i\ (1 \leq u_i, v_i \leq n;\ u_i \neq v_i) 表示树上第 ii 条边连接节点 uiu_iviv_i 。保证树连通。
\hspace{15px}此后 qq 行,第 ii 行输入的第一个整数为操作类型,若为操作 11 ,后续输入为 x,op,val ;x, op, val \space ;若为操作 22 ,后续输入为 val,x,yval, x, y

Output

\hspace{15px}对于每个操作 22, 输出一行一个整数表示查询的答案。

Samples

5 3
| | & ^ |
10 10 10 5 10
1 3
1 2
2 4
2 5
2 0 5 3
1 1 & 8
2 0 5 3
10
8