#include<stdio.h>
#include<algorithm>
using namespace std;
int dp[201][10001];
int c[200];
int d[200];
int main(){
	int a,b;
	int MOD=1000000007;
	scanf("%d%d",&a,&b);
	for(int i=0;i<a;i++)scanf("%d",c+i);
	std::sort(c,c+a);
	d[0]=c[0];
	for(int i=1;i<a;i++)d[i]=d[i-1]+c[i];
	dp[a][0]=1;
	for(int i=a;i>0;i--){
		for(int j=0;j<=b;j++){
			if(j+c[i-1]<=b)dp[i-1][j+c[i-1]]=(dp[i-1][j+c[i-1]]+dp[i][j])%MOD;
			if(j+d[i-1]>b)dp[i-1][j]=(dp[i-1][j]+dp[i][j])%MOD;
		}
	}
	int ret=0;
	for(int i=0;i<=b;i++)ret=(ret+dp[0][i])%MOD;
	printf("%d\n",ret);
}