問題文

長さ NN の配列 AA が与えられます。

また、QQ 個のクエリが与えられるので、順番に処理してください。
クエリは次の 22 種類のいずれかです。

  • 1 l r v : Al,Al+1,...,ArA_l, A_{l+1}, ..., A_rvv を加算する。
  • 2 k : AkA_k の値を出力する。

制約

  • 1N,Q1051 \leq N, Q \leq 10^5
  • 0Ai109(1iN)0 \leq A_i \leq 10^9 \: (1 \leq i \leq N)
  • 1lrN1 \leq l \leq r \leq N
  • 1kN1 \leq k \leq N
  • 1v1091 \leq v \leq 10^9
  • 入力はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

N Q
A1 A2 ... AN
query1
query2
...
queryQ

i(1iQ)i \: (1 \leq i \leq Q) 番目の query ii では、まずクエリの種類 tit_i (1,2(1, 2 のいずれか)) が与えられ、ti=1t_i = 1 のときは追加で l,r,vl, r, vti=2t_i = 2 のときは追加で kk が与えられる。
すなわち、各クエリは以下に示す 22 つの形式のいずれかが与えられる。

1 l r v
2 k

出力

ti=2t_i = 2 を満たすクエリの個数を qq として、qq 行出力せよ。
j(1jq)j \: (1 \leq j \leq q) 行目では jj 番目のそのようなクエリに対する答えを出力せよ。

入出力例

入力例1
5 4
1 2 3 4 5
1 1 4 3
2 1
1 2 5 10
2 3
出力例1
4
16

最初のクエリについて、A1,A2,A3,A4A_1, A_2, A_3, A_433 が加算されるため、配列の状態は [4,5,6,7,5][4, 5, 6, 7, 5] となります。
22 番目のクエリについては、A1A_1 の値である 44 を出力します。
33 番目のクエリについては、A2,A3,A4,A5A_2, A_3, A_4, A_51010 が加算されるため、配列の状態は [4,15,16,17,15][4, 15, 16, 17, 15] となります。
44 番目のクエリについては、A3A_3 の値である 1616 を出力します。

入力例2
8 10
321058955 375783138 635607560 71852896 108254942 605658038 79928128 104692941
1 1 7 866702240
1 5 7 645425643
2 3
2 2
1 1 8 639545895
2 3
1 1 3 729844449
1 6 7 357725289
2 6
2 3
出力例2
1502309800
1242485378
2141855695
3115057105
2871700144

答えが32bit整数型に収まらない可能性があることに注意してください。

提出


Go (1.21)