dp真的蒟蒻
#include<iostream>
using namespace std;
int n,m,a[101],dp[101][101];
int main(){
//freopen(" ","r",stdin);
//freopen(" ","w",stdout);
cin >> n >> m;
for(int i=1;i<=n;i++) {
cin >> a[i];
dp[i][0]=1;
}
dp[0][0]=1;
for(int i=1;i<=n;i++){//种类
for(int j=1;j<=m;j++){//总盆数
for(int k=0;k<=a[i];k++){//a[i]盆数
if(k<=j) dp[i][j]+=dp[i-1][j-k];
}
}
}
cout << dp[n][m]%1000007;
//fclose(stdin);
//fclose(stdout);
return 0;
}