n,m=map(int,input().split()) x=[1<<30]*(m+1);x[0]=0 for i in list(map(int,input().split())): for j in range(m-i+1): x[i+j]=min(x[i+j],x[j]+1) f=[1]*10**6;g=[1]*len(f);mod=998244353 for i in range(1,len(f)): f[i]=f[i-1]*i%mod g[-1]=pow(f[-1],mod-2,mod) for i in range(len(f)-1,0,-1): g[i-1]=g[i]*i%mod ans=1 for i in range(1,m+1): if x[i]==1<<30: continue c=i-x[i] d=m-x[i] ans+=f[d]*g[c]%mod*g[d-c]%mod print(ans%mod)