#abc255h. [abc255_h]Range Harvest Query

[abc255_h]Range Harvest Query

問題文

NN 本の木があります。00 日目にはどの木にも実は一つもなっていません。
11 日目以降の毎朝、それぞれの i=1,2,ldots,Ni = 1, 2, \\ldots, N について、ii 番目の木に ii 個の実が増えます。

高橋君は QQ 回の収穫作業をします。 i=1,2,ldots,Qi = 1, 2, \\ldots, Q について、ii 回目の収穫作業は DiD_i 日目の夜に行われ、その時点で LiL_i 番目から RiR_i 番目の木になっているすべての実を収穫します。

QQ 回の収穫作業のそれぞれについて、高橋君が収穫する実の個数を 998244353998244353 で割ったあまりを出力してください。

制約

  • 1leqNleq10181 \\leq N \\leq 10^{18}
  • 1leqQleq2times1051 \\leq Q \\leq 2 \\times 10^5
  • $1 \\leq D_1 \\lt D_2 \\lt \\cdots \\lt D_Q \\leq 10^{18}$
  • 1leqLileqRileqN1 \\leq L_i \\leq R_i \\leq N
  • 入力はすべて整数

入力

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

NN QQ D1D_1 L1L_1 R1R_1 D2D_2 L2L_2 R2R_2 vdots\\vdots DQD_Q LQL_Q RQR_Q

出力

QQ 行出力せよ。 i=1,2,ldots,Qi = 1, 2, \\ldots, Q について、ii 行目には高橋君が ii 回目の収穫作業で収穫する実の個数を 998244353998244353 で割ったあまりを出力せよ。


入力例 1

5 3
2 2 3
3 3 4
5 1 5

出力例 1

10
15
50

i=1,2,3,4,5i = 1, 2, 3, 4, 5 について、ii 番目の木になっている実の個数を AiA_i とし、 それぞれの木になっている実の個数を数列 A=(A1,A2,A3,A4,A5)A = (A_1, A_2, A_3, A_4, A_5) を用いて表すことにします。

  • 00 日目、A=(0,0,0,0,0)A = (0, 0, 0, 0, 0) です。
  • 11 日目の朝、それぞれの木に新たに実がなり、A=(1,2,3,4,5)A = (1, 2, 3, 4, 5) となります。
  • 22 日目の朝、それぞれの木に新たに実がなり、A=(2,4,6,8,10)A = (2, 4, 6, 8, 10) となります。
  • 22 日目の夜、高橋君は 11 回目の収穫を行います。4+6=104 + 6 = 10 個の木の実を収穫し、A=(2,0,0,8,10)A = (2, 0, 0, 8, 10) となります。
  • 33 日目の朝、それぞれの木に新たに実がなり、A=(3,2,3,12,15)A = (3, 2, 3, 12, 15) となります。
  • 33 日目の夜、高橋君は 22 回目の収穫を行います。3+12=153 + 12 = 15 個の木の実を収穫し、A=(3,2,0,0,15)A = (3, 2, 0, 0, 15) となります。
  • 44 日目の朝、それぞれの木に新たに実がなり、A=(4,4,3,4,20)A = (4, 4, 3, 4, 20) となります。
  • 55 日目の朝、それぞれの木に新たに実がなり、A=(5,6,6,8,25)A = (5, 6, 6, 8, 25) となります。
  • 55 日目の夜、高橋君は 33 回目の収穫を行います。5+6+6+8+25=505 + 6 + 6 + 8 + 25 = 50 個の木の実を収穫し、A=(0,0,0,0,0)A = (0, 0, 0, 0, 0) となります。

入力例 2

711741968710511029 1
82803157126515475 516874290286751784 588060532191410838

出力例 2

603657470

998244353998244353 で割ったあまりを出力することに注意してください。