#abc255h. [abc255_h]Range Harvest Query

[abc255_h]Range Harvest Query

问题描述

NN 棵树。在第 00 天,每棵树都没有结出果实。
从第 11 天的早上开始,第 ii 棵树每天都会结出 ii 个新的果实,其中 i=1,2,,Ni = 1, 2, \ldots, N

高桥会进行 QQ 次收获。对于每次 i=1,2,,Qi = 1, 2, \ldots, Q 的收获,将在第 DiD_i 天晚上进行,收集该时刻剩余在第 LiL_i 到第 RiR_i 棵树上的所有果实。

对于每一次收获,输出高桥将收集的果实数量,对 998244353998244353 取模。

约束条件

  • 1N10181 \leq N \leq 10^{18}
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 1D1<D2<<DQ10181 \leq D_1 < D_2 < \cdots < D_Q \leq 10^{18}
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • 输入中的所有值均为整数。

输入

输入以以下格式从标准输入给出:

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

输出

输出 QQ 行。对于每次 i=1,2,,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,令 AiA_i 是第 ii 棵树上剩余的果实数量。现在,我们使用序列 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 的计算。