给定一个长为 n 的数组 a,依次给出 q 个以下形式的指令。
0 l r x :对每个 i \in [l,r],将 a_i 加上 x 。1 l r :输出 \sum_{i=l}^r a_i \bmod 998244353 。输入
第一行两个正整数 n,q (1 \leq n,q \leq 2 \times 10^5),分别表示数组 a 的长度与指令的个数。
第二行 n 个非负整数 a_i (0 \leq a_i \leq 10^9),表示数组 a 。
随后 q 行每行一条指令 (1 \leq l \leq r \leq n,1 \leq x \leq 10^9) ,具体格式见上。
数据保证所有形如 0 l r x 的操作出现在所有形如 1 l r 的操作之前。
输出
对每个形如 1 l r 的指令,输出一行一个整数,表示 \sum_{i=l}^r a_i \bmod 998244353 。
样例
| 标准输入 复制文本 |
6 4 1 1 4 5 1 4 0 1 3 806 0 4 6 148 1 2 5 1 3 3 |
| 标准输出 复制文本 |
1919 810 |
提示
初始状态:[1,1,4,5,1,4]
将 a_1\sim a_3 加上 806 :[807,807,810,5,1,4]
将 a_4\sim a_6 加上 148 :[807,807,810,153,149,152]
查询 \sum_{i=2}^5 a_i:807+810+153+149=1919
查询 \sum_{i=3}^3 a_i:810