#include<bits/stdc++.h>
#define int long long
using namespace std;
const long long maxn=1e2+10,P=1000007;
int c,n;
int a[maxn];
int dp[maxn][maxn];
signed main(){
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];//输入不多说
}
for(int i=0;i<=n;i++)dp[0][i]=1;//初始化,表示不放花时的方案数
for(int i=1;i<=c;i++){//枚举放了i盆花的情况
for(int j=1;j<=n;j++){//枚举第j种花
for(int k=0;k<=i;k++){//枚举区间k~i全放第j种花
if(i-k<=a[j]){//判断是否属于每种花的数量限制
dp[i][j]+=dp[k][j-1];
dp[i][j]%=P;//不忘取模
}
}
}
}
cout<<dp[c][n];//输出
return 0;
}