#include<bits/stdc++.h>
 using namespace std;
 

const int mod = 1e9 + 7;
 
int ways(vector<int> &arr,vector<vector<int> > &dp, int idx, int sum)
{
   if(idx < 0)
     return (sum == 0);
   if(sum == 0)
      return 1;
   if(sum < 0)
      return 0;
   
   int &ans = dp[idx][sum];
   if(ans != -1)
      return ans;
 
   if(sum >= arr[idx])
     ans = (ways(arr, dp, idx, sum - arr[idx]) +  ways(arr, dp, idx - 1, sum)) % mod;
   else
     ans = ways(arr, dp, idx - 1, sum);
 
   return ans;
}
 
int main()
{ 
 
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);

  // #ifndef ONLINE_JUDGE
  //   freopen("input.txt", "r", stdin);
  //   freopen("output.txt", "w", stdout);
  // #endif 
 
  int n, val;
  cin >> n >> val;

  vector<int> arr(n);

  for(int i = 0; i < n; i++)
    cin >> arr[i];
 
  vector<vector<int> > dp(n, vector<int>(val + 1, -1));
 
  cout << ways(arr, dp, n - 1, val);
 
  return 0;
}