#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn (ll) (1e7+5)
#define mod (ll)(1e9+7)
ll f[maxn],sum,x,m;
ll i,n;
ll po(ll a,ll n){
ll res=a,ans=1;
while(n){
if(n%2)
ans=ans*res%mod;
res=res*res%mod;
n/=2;
}
return ans;
}
ll C(ll n,ll k){
return f[n]*po(f[n-k],mod-2)%mod*po(f[k],mod-2)%mod;
}
int main(){
f[0]=1;
for(i=1;i<maxn;i++) f[i]=f[i-1]*i%mod;
cin>>m>>n;
for(i=0;i<n;i++){
cin>>x;
sum+=x;
}
if(m<sum) {cout<<0;return 0;}
ll tmp,j;
tmp=po(f[n-1],mod-2);
for(j=m-sum+1;j<=m-sum+n-1;j++) tmp=(tmp*j)%mod;
cout<<tmp;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBtYXhuIChsbCkgKDFlNys1KQojZGVmaW5lIG1vZCAobGwpKDFlOSs3KQpsbCBmW21heG5dLHN1bSx4LG07CmxsIGksbjsKbGwgcG8obGwgYSxsbCBuKXsKIGxsICByZXM9YSxhbnM9MTsKICB3aGlsZShuKXsKICAgIGlmKG4lMikKICAgICAgICBhbnM9YW5zKnJlcyVtb2Q7CiAgICAgICAgcmVzPXJlcypyZXMlbW9kOwogICAgICAgIG4vPTI7CiAgfQogICByZXR1cm4gYW5zOwp9CmxsIEMobGwgbixsbCBrKXsKICAgcmV0dXJuIGZbbl0qcG8oZltuLWtdLG1vZC0yKSVtb2QqcG8oZltrXSxtb2QtMiklbW9kOwp9CmludCBtYWluKCl7CiAgIGZbMF09MTsKICAgZm9yKGk9MTtpPG1heG47aSsrKSBmW2ldPWZbaS0xXSppJW1vZDsKICAgY2luPj5tPj5uOwogICBmb3IoaT0wO2k8bjtpKyspewogICAgICAgY2luPj54OwogICAgICAgc3VtKz14OwogICB9CiAgIGlmKG08c3VtKSB7Y291dDw8MDtyZXR1cm4gMDt9CiAgIGxsIHRtcCxqOwogICB0bXA9cG8oZltuLTFdLG1vZC0yKTsKICAgZm9yKGo9bS1zdW0rMTtqPD1tLXN1bStuLTE7aisrKSB0bXA9KHRtcCpqKSVtb2Q7CiAgIGNvdXQ8PHRtcDsKICAgcmV0dXJuIDA7Cn0K