AT_abc460_g [ABC460G] Vertex Flip Query

Description

頂点に $ 1 $ から $ N $ の番号がついた $ N $ 頂点の木があります。 $ i $ 本目の辺は頂点 $ a_i $ と頂点 $ b_i $ を結ぶ辺です。頂点 $ i $ には重み $ W_i $ と色 $ C_i \in \lbrace 0,1 \rbrace $ が設定されています。 クエリを $ Q $ 個処理してください。クエリは以下の $ 3 $ 種類のいずれかです。 - `1 v`:頂点 $ v $ について $ C_v $ を $ 1-C_v $ に変更する。 - `2 v x`:頂点 $ v $ について $ W_v $ を $ W_v + x $ に変更する。 - `3 v` :頂点 $ v $ の色を $ c $ とする。頂点 $ v $ から色が $ c $ である頂点のみを通って到達可能な頂点(頂点 $ v $ 自身も含む)全てについての重みの総和を出力する。

Input Format

入力は以下の形式で標準入力から与えられる。ここで $ \mathrm{query}_i $ は $ i $ 番目のクエリを意味する。 > $ N $ $ Q $ $ W_1 $ $ W_2 $ $ \dots $ $ W_N $ $ C_1 $ $ C_2 $ $ \dots $ $ C_N $ $ a_1 $ $ b_1 $ $ a_2 $ $ b_2 $ $ \vdots $ $ a_{N-1} $ $ b_{N-1} $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $ 各クエリは以下の形式のいずれかで与えられる。 > $ 1 $ $ v $ > $ 2 $ $ v $ $ x $ > $ 3 $ $ v $

Output Format

与えられた $ 3 $ 種類目のクエリの個数を $ m $ として、 $ m $ 行出力せよ。 $ i $ 行目には $ i $ 番目に与えられた $ 3 $ 種類目のクエリの答えを $ 1 $ 行で出力せよ。

Explanation/Hint

### Sample Explanation 1 例えば $ 1 $ 番目のクエリでは、頂点 $ 1 $ から色が $ 0 $ である頂点のみを通って到達可能な頂点の集合は $ \lbrace 1,2,3,4,5 \rbrace $ です。 ### Constraints - $ 1 \leq N \leq 3 \times 10^5 $ - $ 1 \leq Q \leq 2 \times 10^5 $ - $ 1 \leq W_i \leq 10^9 $ - $ C_i \in \lbrace 0,1 \rbrace $ - $ 1 \leq a_i \lt b_i \leq N $ - 入力されるグラフは木 - $ 1 \leq v \leq N $ - $ 1 \leq x \leq 10^9 $ - 入力される値は全て整数