AT_past17_f 構文木
Description
頂点に $ 1 $ から $ N $ までの番号がついた $ N $ 頂点の根付き二分木があります。根は頂点 $ 1 $ で、頂点 $ i $ $ (2 \leq i \leq N) $ の親は頂点 $ p_i $ です。すべての頂点は **子を持たないか、ちょうど $ 2 $ 個の子を持つか** のいずれかです。
また、頂点 $ i $ には $ S_i $ が書きこまれています。 $ S_i $ は整数または文字で、二分木の葉の頂点には整数が、葉でない頂点には `+` または `x` が書かれています。
あなたは次の $ 2 $ 種類の操作を自由な順番で操作を行えなくなるまで繰り返します。
- 自身に `+` が書かれていて、両方の子の頂点に整数が書かれている頂点を選ぶ。子に書かれた整数をそれぞれ $ a, b $ として、頂点に書かれている `+` を整数 $ a+b $ に書き換える。そして、子の頂点を取り除く。
- 自身に `x` が書かれていて、両方の子の頂点に整数が書かれている頂点を選ぶ。子に書かれた整数をそれぞれ $ a, b $ として、頂点に書かれている `x` を整数 $ a \times b $ に書き換える。そして、子の頂点を取り除く。
操作を終了した時点で、整数が書かれた頂点がちょうど $ 1 $ 個残ります。その頂点に書かれた整数を $ 998244353 $ で割った余りを求めてください。(どのような順番で操作しても残った頂点に書かれている整数は同じになることが証明できます。)
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ p_2 $ $ p_3 $ $ \dots $ $ p_N $ $ S_1 $ $ S_2 $ $ \dots $ $ S_N $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
以下の手順により、 $ 13 $ が書かれた頂点が残るので答えは $ 13 $ です。
- 頂点 $ 2 $ を選ぶ。頂点 $ 2 $ に書かれている `x` を $ 2 \times 5 = 10 $ に書き換えて、頂点 $ 4 $ と頂点 $ 5 $ を削除する。
- 頂点 $ 1 $ を選ぶ。頂点 $ 1 $ に書かれている `+` を $ 10 + 3 = 13 $ に書き換えて、頂点 $ 2 $ と頂点 $ 3 $ を削除する。
### Sample Explanation 2
$ 998244353 $ で割った余りを求めることに注意してください。
### Constraints
- $ 1 \leq N \leq 2 \times 10^5 $
- $ 1 \leq p_i \leq i - 1 $ $ (2 \leq i \leq N) $
- 全ての頂点は $ p_2, p_3, \dots, p_N $ にちょうど $ 0 $ 回または $ 2 $ 回現れる
- $ S_i $ は次の $ 2 $ 種類のいずれか
- 頂点 $ i $ が葉の頂点のとき、 $ S_i $ は $ 1 $ 以上 $ 10^8 $ 以下の整数
- 頂点 $ i $ が葉でない頂点のとき、 $ S_i $ は `+` または `x`