#include <bits/stdc++.h>
using namespace std;
const long long p = 998244353;
int main() {
  int N, S, s;
  cin >> N >> S;
  vector<int> A(N);
  for (int i = 0; i < N; i++) {
    cin >> A[i];
  }
  vector<vector<int>> dp;
  int ans = 0;
  for (int x1 = 0; x1 < N; x1++) {
    s = S - A[x1];
    if (s < 0) continue;
    dp.assign(N, vector<int>(s + 1, 0));
    dp[x1][0] = 1;
    for (int j = x1; j <= N - 1; j++) {
      ans += ((dp[j][s] * (x1 + 1)) % p) * (N - j) % p;
      ans %= p;
      if (j == N - 1) break;
      dp[j][s] = 0;
      for (int k = 0; k < A[j + 1]; k++) {
        dp[j + 1][k] = dp[j][k];
        dp[j + 1][k] %= p;
      }
      for (int k = A[j + 1]; k <= s; k++) {
        dp[j + 1][k] = dp[j][k - A[j + 1]] + dp[j][k];
        dp[j + 1][k] %= p;
      }
    }
  }
  cout << ans << endl;
}
