#abc256f. [abc256_f]Cumulative Cumulative Cumulative Sum

[abc256_f]Cumulative Cumulative Cumulative Sum

問題文

N,QN,Q および A=(A1,ldots,AN)A=(A_1,\\ldots,A_N) が与えられます。
以下のクエリを QQ 個処理してください。クエリは次の 22 種類のいずれかです。

  • 1 x v : AxA_xvv に更新する。
  • 2 x : Bi=sumj=1iAjB_i=\\sum_{j=1}^{i}A_jCi=sumj=1iBjC_i=\\sum_{j=1}^{i}B_jDi=sumj=1iCjD_i=\\sum_{j=1}^{i}C_j としたときの DxD_xbmod998244353\\bmod\\ 998244353 で出力する。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2\\times10^5
  • 1leqQleq2times1051 \\leq Q \\leq 2\\times10^5
  • 0leqAileq1090 \\leq A_i \\leq 10^9
  • 1leqxleqN1 \\leq x \\leq N
  • 0leqvleq1090 \\leq v \\leq 10^9
  • 入力に含まれる値は全て整数である

入力

入力は以下の形式で標準入力から与えられる。ここで rmqueryi{\\rm query}_iii 番目に処理するクエリである。

NN QQ A1A_1 A2A_2 ldots\\ldots ANA_N rmquery1{\\rm query}_1 rmquery2{\\rm query}_2 vdots\\vdots rmqueryQ{\\rm query}_Q

各クエリは以下の 22 種類のいずれかの形式で与えられる。

11 xx vv 22 xx

出力

クエリへの答えを改行区切りで出力せよ。


入力例 1

3 3
1 2 3
2 3
1 2 0
2 3

出力例 1

15
9

11 番目のクエリの時点で A=(1,2,3)A=(1,2,3) であるため、B=(1,3,6)B=(1,3,6)C=(1,4,10)C=(1,4,10)D=(1,5,15)D=(1,5,15) となり、D3=15D_3=15 です。

33 番目のクエリの時点で A=(1,0,3)A=(1,0,3) であるため、B=(1,1,4)B=(1,1,4)C=(1,2,6)C=(1,2,6)D=(1,3,9)D=(1,3,9) となり、D3=9D_3=9 です。


入力例 2

2 1
998244353 998244353
2 1

出力例 2

0