#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=25,mod=1e9+7;
int n,m,a[N],ans,num,fac=1;
int ksm(int x,int n){
int ret=1;
while(n){
if(n%2){
ret=ret*x%mod;
}
x=x*x%mod,n/=2;
}
return ret;
}
int C(int x){
int ret=fac;
for(int i=x-n+2;i<=x;i++){
ret=ret*i%mod;
}
return ret;
}
signed main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
fac=fac*i%mod;
}
fac=ksm(fac,mod-2),ans=C(m+n-1);
for(int i=0;i<(1<<n);i++){
int sign=1,tmp=m;
for(int j=0;j<n;j++){
if((i>>j)&1){
tmp++,sign*=-1;
}
else{
tmp-=a[j];
}
}
num=(num+sign*C(tmp-1))%mod;
}
cout<<((ans-num)%mod+mod)%mod;
}