#icpc2015summerday2h. [icpc2015summer_day2_h]Bit Operation Game

[icpc2015summer_day2_h]Bit Operation Game

(13:43:00) Sample Input 1 の図を修正しました

Problem Statement

NN 頂点の根付き木が与えられる。 頂点には 00 から N1N-1 の番号がついており、00番目の頂点が根を表す。 根には T = 0 が、それ以外の頂点には

  • T=T&X
  • T=T&Y
  • T=T|X
  • T=T|Y
  • T=T^X
  • T=T^Y

のいずれかの操作が書かれている。 ここでの演算子 &, |, ^ はそれぞれビット演算子 and, or, xor, を意味する。

A君とB君はこの木を使って以下のゲームを MM 回行った。 二人は根からスタートし、子頂点を選び進むという操作を、A君から始め葉に到達するまで交互に行う。 通ったノードに書かれている操作を、通った順に適用した時の、最終的な TT の値がスコアになる。 B君はできるだけスコアを小さくしたいと考えており、またA君は大きくしたいと考えている。 M回のゲームの XX, YY の値が与えられるので、二人が最適な選択をした時の各ゲームのスコアを出力せよ。


Constraints

  • 1leqNleq1000001 \\leq N \\leq 100000
  • 1leqMleq1000001 \\leq M \\leq 100000
  • 0leqX,Y<2160 \\leq X, Y < 2^{16}

Input Format

入力は以下の形式で標準入力から与えられる。NN MM o1o_1 o2o_2 ...... oN1o_{N-1} u1u_1 v1v_1 u2u_2 v2v_2 ...... uN1u_{N-1} vN1v_{N-1} X1X_1 Y1Y_1 X2X_2 Y2Y_2 ...... XMX_M YMY_M

11 行目には木の頂点数 NN と、行われるゲーム数を表す整数 MM が入力される。
22 行目から NN 行目にかけて、11N1N-1 番目の頂点に書かれている操作が入力される。
さらに続けて N1N-1 行に、各辺により繋がれる 22 頂点の番号が入力される。
最後に MM 回のゲームにおける XX, YY の値が MM 行に渡り入力される。

Output Format

各ゲームでの最終的な TT の値をそれぞれ MM 行に出力せよ。


Sample Input 1


6 3
T=T|X
T=T|Y
T=T|Y
T=T^Y
T=T&X
0 1
0 2
1 3
1 4
2 5
5 6
3 5
0 0

Sample Output 1


4
6
0
```![](http://www.geocities.jp/unko_der/h_sample1-1.png)  
**(13:43:00) 図を修正しました**  
X = 5, Y = 6 の場合、頂点 0 -> 2 -> 5 と進み、T = 5 & 6 = 4 になります  
X = 3, Y = 5 の場合、頂点 0 -> 1 -> 4 と進み、T = 3 ^ 5 = 6 になります  
X = 0, Y = 0 の場合、どこを通っても T は 0 から変化しません  

* * *