from math import radians import sys,random input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) def cmb(n, r, mod): if ( r<0 or r>n ): return 0 return (g1[n] * g2[r] % mod) * g2[n-r] % mod mod = 998244353 N = 2*10**5 g1 = [1]*(N+1) g2 = [1]*(N+1) inverse = [1]*(N+1) for i in range( 2, N + 1 ): g1[i]=( ( g1[i-1] * i ) % mod ) inverse[i]=( ( -inverse[mod % i] * (mod//i) ) % mod ) g2[i]=( (g2[i-1] * inverse[i]) % mod ) inverse[0]=0 N,M = mi() A = li() INF = 10**9 dp = [INF for i in range(M+1)] dp[0] = 0 for i in range(N): for S in range(M-A[i]+1): if dp[S]!=INF: dp[S+A[i]] = min(dp[S+A[i]],dp[S]+1) res = 0 for S in range(M+1): if dp[S]!=INF: res += cmb(M-dp[S],S-dp[S],mod) res %= mod print(res)