#include <bits/stdc++.h>
const int mod=998244353;
using namespace std;
int n,m,k,fac[2010],inv[2010],ifac[2010],a[2010],L,f[60][2010][60],g[2010][2];
int ksm(int a,int k){
	int res=1;
	for(;k;k>>=1,a=1ll*a*a%mod) if(k&1) res=1ll*a*res%mod;
	return res;
}
void qmo(int &x){
	x+=(x>>31)&mod;
}
void init(int N){
	fac[0]=ifac[0]=fac[1]=ifac[1]=inv[1]=1;
	for(int i=2;i<=N;i++){
		fac[i]=1ll*i*fac[i-1]%mod;
		inv[i]=mod-1ll*inv[mod%i]*(mod/i)%mod,ifac[i]=1ll*inv[i]*ifac[i-1]%mod;
	}
}
int main(){
	scanf("%d%d",&n,&k),m=0;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]),L+=a[i];
	init(L);
	f[0][0][0]=1;
	for(int i=1;i<=n;i++){
		memset(g,0,sizeof(g));
		for(int j=0;j<=(a[i]-1)/k;j++){
			int t=1ll*(a[i]-j*k)*inv[L]%mod;
			for(int p=0;p<2;p++) if(j-p>=0) g[j-p][p]=1ll*(j&1?mod-1:1)*ifac[j-p]%mod*ksm(t,j-p)%mod;
		}
		for(int x=0;x<=m;x++) for(int y=0;y<i;y++) if(f[i-1][x][y]){
			for(int j=0;j<=(a[i]-1)/k;j++) for(int p=0;p<2;p++){
				qmo(f[i][x+j][y+p]+=1ll*g[j][p]*f[i-1][x][y]%mod-mod);
			}
		}
		m+=(a[i]-1)/k;
	}
	int ans=0;
	for(int i=0;i<=m;i++) for(int j=0;j<=n;j++) if(f[n][i][j]){
		int t=1ll*(i+j)*k*inv[L]%mod;
		qmo(t=1-t);
		if(t==1) continue;
		qmo(ans-=1ll*f[n][i][j]*fac[i]%mod*ksm(ksm(1-t+mod,mod-2),i+1)%mod);
	}
	printf("%d\n",ans);
}