#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i,n) for(int i = 0; i < (n); ++i) #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; const ll MOD=1e9+7; template void chmin(T &a,const T &b){if(a>b) a=b;} template void chmax(T &a,const T &b){if(a>N>>K; vector A(N); rep(i,N) cin>>A[i]; vector> dp(N+1,vector (L+1,0)); dp[0][0]=1; for(int i=0;i> ndp(N+1,vector (L+1,0)); for(int j=0;j<=i;j++) for(int k=0;k<=L;k++){ if(dp[j][k]==0) continue; add(ndp[j][k],dp[j][k]); add(ndp[j+1][k+A[i]],dp[j][k]); } dp=ndp; } ll ans=0; for(int j=1;j<=N;j++) for(int k=0;k<=L;k++){ if(K*j<=k) add(ans,dp[j][k]); } cout<