#include <bits/stdc++.h>
using namespace std;
const long long int MOD = 998244353;
const long long int INF = 2147483647;
const long long int LINF = 9223372036854775807;
int n, s;
vector<vector<long long int> > p(3030, vector<long long int>(0));
long long int ans = 0;
void dfs(int sum, int l, int r, int m) {
  if (sum == s) {
    ans += l * (n - r + 1);
    ans %= MOD;
    return;
  }
  int c = 0;
  for (int i = 1; i <= s - sum; i++) {
    for (int j : p[i]) {
      if (c >= m) dfs(sum + i, min(l, j), max(r, j), c + 1);
      c++;
    }
  }
}
int main() {
  cin >> n >> s;
  vector<long long int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) p[a[i]].push_back(i + 1);
  dfs(0, INF, -1, 0);
  cout << ans << endl;
  return 0;
}
