#include<bits/stdc++.h>
using namespace std;
long long n,m,cm,ans,c;
int a[105],b[105]={0};
void qaq(int x)
{
c=0;
for(int i=1;i<=n;i++)
{
c+=b[i];
}
if(c==m)
{
ans+=1;
return ;
}
if(b[x]<a[x])
{
b[x]++;
cm++;
qaq(x);
cm--;
b[x]--;
qaq(x+1);
}
if(b[x]==a[x])
{
qaq(x+1);
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
qaq(1);
cout<<ans%1000007<<endl;
return 0;
}
就很迷惑