#include "bits/stdc++.h"
using namespace std;
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2333&lang=jp
typedef long long ll;
#define INF 1<<30
#define LINF 1LL<<60
#define MAXW 10050
int dp[MAXW];
const ll mod = 1000000007;
int main() {
	cin.tie(0); ios::sync_with_stdio(false);
	int N, W; cin >> N >> W;
	vector<int> w(N + 1);
	for (int i = 0; i < N;i++) cin >> w[i];
	w[N] = INF;
	int ans = 0;
	sort(w.begin(), w.end());
	for (int i = 0;i <= N;i++) {
		int sum = 0;
		for (int j = 0; j < i;j++) {
			sum += w[j];
		}
		memset(dp, 0, sizeof(dp));
		dp[0] = 1;
		for (int j = i+1; j < N;j++) {
			for (int k = MAXW-1; k >= 0;k--) {
				if (dp[k] == 0)continue;
				if (W - sum < w[j] + k)continue;
				(dp[k + w[j]] += dp[k])%=mod;
				
			}
		}

		for (int j = max(0,W-sum-w[i]+1); j <= W - sum;j++) {
			if (dp[j] == 0)continue;
			(ans += dp[j]) %= mod;
		}
	}
	cout << ans << endl;

	return 0;
}