#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using Graph = vector<vector<int>>;
int main() {
  int N, S;
  cin >> N >> S;
  vector<int> A(N);
  for (int i = 0; i < N; i++) {
    cin >> A.at(i);
  }
  ll ans = 0;
  vector<vector<ll>> dp(N + 1, vector<ll>(S + 1, 0));
  dp.at(0).at(0) = 1;
  for (int i = 1; i <= N; i++) {
    for (int j = 0; j <= S; j++) {
      dp.at(i).at(j) = dp.at(i - 1).at(j);
    }
    for (int j = 0; j + A.at(i - 1) <= S; j++) {
      if (dp.at(i).at(j) == 0) {
        continue;
      }
      if (j == 0) {
        dp.at(i).at(j + A.at(i - 1)) += i;
      } else {
        dp.at(i).at(j + A.at(i - 1)) += dp.at(i - 1).at(j);
      }
      if (j + A.at(i - 1) == S) {
        if (j == 0) {
          ans += i * (N - i + 1);
          ans %= 998244353;
          continue;
        }
        ans += dp.at(i - 1).at(j) * (N - i + 1);
        ans %= 998244353;
      }
    }
  }
  cout << ans << endl;
}
