#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod=1e9+7;
ll add(ll a,ll b){return (a+b)%mod;}
int N,W,sum=0;
int t[201];
ll dp[201][10001];

ll solve(){
  if(sum<=W||W<t[N])return 1;
  ll res=0;
  dp[0][0]=1;
  for(int i=1;i<=N;i++){
    sum-=t[i];
    for(int j=0;j<=W;j++){
      dp[i][j]=dp[i-1][j];
      if(sum+j<=W&&W<t[i]+sum+j)res=add(res,dp[i][j]);
      if(j-t[i]>=0)dp[i][j]=add(dp[i][j],dp[i-1][j-t[i]]);
    }
  }
  return res;
}

int main(){
  cin>>N>>W;
  for(int i=1;i<=N;i++){
    cin>>t[i];
    sum+=t[i];
  }
  sort(t+1,t+1+N);
  reverse(t+1,t+1+N);
  cout<<solve()<<endl;
  return 0;
}