umgくんは、 $N$ 頂点の木を持っています。頂点 $i \ (1\leq i \leq N)$ の重みは $v_i$ です。 $j \ (1 \leq j \leq N-1)$ 番目の辺は、頂点 $a_i$ と頂点 $b_i$ を結び、その重みは $w_i$ です。さらに、木全体の重みを「 $\sum_{1\leq a \lt b \leq N} \mathrm{dist}(a,b) v_a v_b$ を $998244353$ で割った余り」で定めます。 (15:05 更新) ここで、 $\mathrm{dist}(a,b)$ というのは、頂点 $a$ から頂点 $b$ の最短経路上に存在する辺の重みの和を表しています。
umgくんはまず、今持っている木全体の重みを知りたいです。さらに、 $Q$ 個の変更クエリが与えられます。クエリの種類は以下の2つです。
これらのクエリを処理してください。
入力は以下の形式で標準入力から与えられる。
$N$ $v_1$ $v_2$ $\cdots$ $v_N$ $a_1$ $b_1$ $w_1$ $a_2$ $b_2$ $w_2$ $\vdots$ $a_{N-1}$ $b_{N-1}$ $w_{N-1}$ $Q$ $query_1$ $query_2$ $\vdots$ $query_Q$
$query_i$の入力形式は以下の2つのいずれかである。
$1$ $c$ $x$
$2$ $e$ $x$
答えを $Q+1$ 行に出力せよ。$1$行目には木の最初の状態で木全体の重み、$i+1$行目には、$i$番目の変更クエリ後の木全体の重みを出力せよ。
3
1 2 4
1 2 1
2 3 2
2
1 1 1
2 2 2
30
44
76
例えば、木の最初の状態の木全体の重みは、 $\mathrm{dist}(1,2) \times 1 \times 2 + \mathrm{dist}(1,3) \times 1 \times 4 + \mathrm{dist}(2,3) \times 2 \times 4 = 2+12+16=30$ です。
4
2 2 3 3
1 2 4
1 3 3
1 4 1
3
2 3 4
1 4 1
2 1 10
148
232
284
464