#include using namespace std; #define REP(i,n) for(int i=0; i<(int)(n); i++) #define FOR(i,b,e) for (int i=(int)(b); i<(int)(e); i++) #define ALL(x) (x).begin(), (x).end() const double PI = acos(-1); const int MOD = 1e9 + 7; int dp[100+1][10000+1]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector a(n); REP (i, n) cin >> a[i]; dp[0][0] = 1; REP (x, n) { for (int i = n; i > 0; i--) { for (int j = 0; j <= 100 * n; j++) { if (j - a[x] >= 0) { dp[i][j] += dp[i-1][j-a[x]]; dp[i][j] %= MOD; } } } } int ret = 0; FOR (i, 1, n+1) REP (j, 100 * n + 1) { if (j >= i * k) { ret += dp[i][j]; ret %= MOD; } } cout << ret << endl; return 0; }