#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2210, S = 5610, MOD = 998244353;
int memo[N][S];
int a[N];
int f(int n, int s) {
if (n == 0) return 1;
if (s == 0) return 1;
if (s < 0) return 0;
if (memo[n][s] != -1) return memo[n][s];
int c1 = f(n - 1, s);
int c2 = f(n - 1, s - a[n]);
return (c1 + c2) % MOD;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, s;
cin >> n >> s;
for (int i = 1; i <= n; ++i) cin >> a[i];
memset(memo, -1, sizeof(memo));
cout << ((f(n, s) - 1) % MOD + MOD) % MOD;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTiA9IDIyMTAsIFMgPSA1NjEwLCBNT0QgPSA5OTgyNDQzNTM7CmludCBtZW1vW05dW1NdOwppbnQgYVtOXTsKCmludCBmKGludCBuLCBpbnQgcykgewoJaWYgKG4gPT0gMCkgcmV0dXJuIDE7CglpZiAocyA9PSAwKSByZXR1cm4gMTsKCWlmIChzIDwgMCkgcmV0dXJuIDA7CglpZiAobWVtb1tuXVtzXSAhPSAtMSkgcmV0dXJuIG1lbW9bbl1bc107CglpbnQgYzEgPSBmKG4gLSAxLCBzKTsKCWludCBjMiA9IGYobiAtIDEsIHMgLSBhW25dKTsKCXJldHVybiAoYzEgKyBjMikgJSBNT0Q7Cn0KCnNpZ25lZCBtYWluKCkgewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7CglpbnQgbiwgczsKCWNpbiA+PiBuID4+IHM7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIGNpbiA+PiBhW2ldOwoJbWVtc2V0KG1lbW8sIC0xLCBzaXplb2YobWVtbykpOwoJY291dCA8PCAoKGYobiwgcykgLSAxKSAlIE1PRCArIE1PRCkgJSBNT0Q7CglyZXR1cm4gMDsKfQ==