#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
inline void chmin(T1 &a, T2 b) {
  if (a > b) a = b;
}
template <typename T1, typename T2>
inline void chmax(T1 &a, T2 b) {
  if (a < b) a = b;
}
const long long MOD = 998244353;
signed main() {
  int n, s;
  cin >> n >> s;
  int a[n];
  for (int i = 0; i < (n); i++) cin >> a[i];
  long long dpl[2][n][3030];
  memset(dpl, 0, sizeof(dpl));
  dpl[0][0][0] = 1;
  for (int i = 0; i < (n); i++) {
    if (i == 0) {
      dpl[1][i][a[i]]++;
      continue;
    }
    dpl[0][i][0]++;
    for (int j = 0; j < (3030); j++) {
      dpl[0][i][j] += dpl[0][i][j] + dpl[1][i][j];
      dpl[0][i][j] %= MOD;
      if (j + a[i] > 3000) continue;
      dpl[1][i][j + a[i]] += dpl[0][i - 1][j] + dpl[1][i - 1][j];
      dpl[1][i][j + a[i]] %= MOD;
    }
  }
  long long ans = 0;
  for (int i = 0; i < (n); i++) {
    for (int j = i; j < n; j++) {
      ans += ((dpl[1][j][3000] - dpl[0][i][3000]) * (i + 1) * (n - j)) % MOD;
      ans %= MOD;
    }
  }
  cout << ans << endl;
}
