AT_arc230_c [ARC230C] Buildings

Description

$ 2 $ 以上の整数 $ N $ と $ N-1 $ 個の整数 $ C_1,C_2,\dots ,C_{N-1} $ が与えられます. $ N $ 個の建物が数直線上に一列に並んでいます. $ i $ 個目の建物は位置 $ i $ に建っており,高さは $ H_i $ です. ここで $ (H_1,H_2,\dots ,H_N) $ は $ (1,2,\dots ,N) $ の順列であることが分かっていますが,具体的な $ H_1,H_2,\dots ,H_N $ は分かっていません. 次の条件が $ x=1,2,\dots, N-1 $ のすべてについて成り立つような $ (H_1,H_2,\dots, H_N) $ としてあり得るものの個数を $ 998244353 $ で割ったあまりを求めてください. - 位置 $ x+0.5 $ から見える建物の個数は $ C_x $ 個である. ここで, $ i $ 番目の建物が見えるのは,位置 $ x+0.5 $ と位置 $ i $ の間に $ H_i $ より高さが高い建物が存在しないとき,またそのときに限る.

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ C_1 $ $ C_2 $ $ \dots $ $ C_{N-1} $

Output Format

答えを出力せよ.

Explanation/Hint

### Sample Explanation 1 たとえば, $ (H_1,H_2,H_3,H_4)=(3,4,2,1) $ は条件を満たします. 実際, - $ x=1 $ について,位置 $ x+0.5=1.5 $ から見える建物は $ 1,2 $ 個目の建物で,あわせて $ 2=C_1 $ 個 - $ x=2 $ について,位置 $ x+0.5=2.5 $ から見える建物は $ 2,3 $ 個目の建物で,あわせて $ 2=C_2 $ 個 - $ x=3 $ について,位置 $ x+0.5=3.5 $ から見える建物は $ 2,3,4 $ 個目の建物で,あわせて $ 3=C_3 $ 個 となります. 条件を満たす $ (H_1,H_2,H_3,H_4) $ はこれを含めて $ 3 $ 通りあります. ### Sample Explanation 2 条件を満たす $ (H_1,H_2,\dots, H_N) $ が存在しないこともあります. ### Constraints - $ 2\le N\le 2\times 10^5 $ - $ 1\le C_x\le N $ - 入力される値は全て整数