/*********************/
//Hard work beats talent when talent doesn’t work hard
/*********************/
#include <iostream>
using namespace std;
#include<bits/stdc++.h>
/*#define int long long*/
#define wh while (t--)
#define pb push_back
#define  popcount __builtin_popcountll
#define beg begin()
#define endi end()
#define f first
#define sec second
#define endl '\n'
#define iso ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int mod = 1e9+7;
int arr[(int)1e3+4] ;
int n ;
int x ;
int memo[(int)1e6+5][100+2] ;
int solve(int sum ,int index )
{
 
    if(sum==0)
    {
        return 1 ;
    }
    if(sum<0)
    {
        return 0 ;
    }
    if(index>=n)
    {
        return 0 ;
 
    }
 if(memo[sum][index]!=-1)
    return memo[sum][index]%mod  ;
 int take =solve(sum-arr[index],index)%mod ;
 int no_take =solve(sum,index+1)%mod ;
 int ans =(take+no_take)%mod;
 return memo[sum][index]=ans%mod ;
 
 
}
int32_t main() {
iso ;
memset(memo ,-1 ,sizeof(memo)) ;
cin>> n >>x ;
for(int i=0 ;i<n ;i++)
{
    cin>> arr[i] ;
}
cout<<solve(x,0) ;
 
 
}