3329 - 区间子段和为S
描述

给定一个长度为 N 的整数序列 A_1, A_2, \ldots, A_N 和一个正整数 S。  

对于所有满足 1 \leq L \leq R \leq N 的整数对 (L, R),定义 f(L, R) 如下:

    - f(L, R) 表示满足 L \leq x_1 < x_2 < \cdots < x_k \leq RA_{x_1} + A_{x_2} + \cdots + A_{x_k} = S 的整数序列 (x_1, x_2, \ldots, x_k) 的个数。

请计算所有满足 1 \leq L \leq R \leq N 的整数对 (L, R)f(L, R) 之和。由于答案可能非常大,请输出其对 998244353 取模的结果。


输入

第一行两个数字N,S分别表示序列长度和求的和;

接下来N个数字A_i;

输出

输出所有 f(L, R) 之和对 998244353 取模的结果。

样例

输入

3 4
2 2 4

输出

5

输入

5 8
9 9 9 9 9

输出

0

输入

10 10
3 1 4 1 5 9 2 6 5 3

输出

152
提示

 限制条件

20%的数据保证:1 \leq N \leq 201 \leq S \leq 301 \leq A_i \leq 10

40%的数据保证:1 \leq N \leq 401 \leq S \leq 1001 \leq A_i \leq 100

60%的数据保证:1 \leq N \leq 801 \leq S \leq 10001 \leq A_i \leq 1000

100%的数据保证:1 \leq N \leq 30001 \leq S \leq 30001 \leq A_i \leq 3000

样例解释 1

可以分别计算如下,和为 5

- f(1,1) = 0

- f(1,2) = 1(仅有 (1, 2) 这一种情况)

- f(1,3) = 2(1, 2)(3) 两种情况)

- f(2,2) = 0

- f(2,3) = 1(仅有 (3) 这一种情况)

- f(3,3) = 1(仅有 (3) 这一种情况)


题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 40
通过次数 6