#include<bits/stdc++.h>
using namespace std;
int dp[101][10005];
int main(){
    int n,k;
    cin>>n>>k;
    int a[n];
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n);
    memset(dp,0,sizeof dp);
    for(int i=0;i<=k;i++){
        if(i<=a[0])
        dp[0][i]=1;
    }
    for(int i=1;i<n;i++){
        for(int j=0;j<=k;j++){
            if(j<a[i]){
                int l=j;
                while(l--){
                    dp[i][j]+=dp[i-1][l];
                }
            }
            else {
                int d=1;
                while(j-2*d-1>=0){
                dp[i][j]=dp[i][j-2*d-1];
                d++;
                j++;
                }
                break;
            }
            
        }
    }
    cout<<dp[n-1][k]%(1e9+7);
}