#include <bits/stdc++.h>
using namespace std;
const int N = 3e3 + 11;
const int mod = 998244353;
int f[N], a[N];
int n, s;
void Add(int &x, int y) { x = (x + y) - (x + y >= mod ? mod : 0); }
int M(int x, int y) { return 1LL * x * y % mod; }
int main() {
  cin >> n >> s;
  for (int i = (1); i <= (n); i++) scanf("%d", &a[i]);
  f[0] = 1;
  int ans = 0;
  for (int i = (1); i <= (n); i++) {
    Add(ans, M(f[s - a[i]], n - i + 1));
    if (a[i] == s) Add(ans, i - 1);
    for (int j = (s - a[i]); j >= (1); j--) {
      Add(f[j + a[i]], f[j]);
    }
    Add(f[a[i]], M(f[0], i));
  }
  cout << ans << endl;
  return 0;
}
