来源 : 贵阳一中信息学课程组
描述

浩浩最近很喜欢数学,一天,他在做试卷时很不开心,因为他遇到一个题,求 1k+2k+...+nk 的通项公式,于是乎他想到一个数列,这个数列支持两种操作:

操作1:把一个区间的每个数都加上x;

操作2:询问一个区间每个数的k次方和。

输入

第一行输入n和m,表示数列长度和操作数。

第二行n个数,表示这个数列。

接下来m行,表示每个操作,第1个数表示执行操作,后两个数表示操作区间,最后一个数表示x或k。

输出

对于每个操作2,输出一行答案(答案可能很大,模998244353再输出)。

样例输入
5 4
1 2 3 4 5
2 1 3 1
2 2 4 2
1 3 4 2
2 1 5 2
样例输出
6
29
91
提示

数据范围:

对于30%的数据: 1≤n≤1000,1≤m≤1000

对于另30%的数据,保证每次询问x=1

对于100%的数据: 1≤n,m≤100000,1≤d,x,y≤n,1≤Ai,z≤1000000000