#include<bits/stdc++.h>
#define mod 1000000007
using namespace std;
const int N=2005;
long long jc[N+5],rejc[N+5],ans;
int n,m,a[N];
long long ksm(long long a,long long b){
long long res=1;
while(b){
if(b&1) res=res*a%mod;
b>>=1;
a=a*a%mod;
}
return res;
}
long long c(int x,int y){
if(x<y) return 0;
return jc[x]*rejc[y]%mod*rejc[x-y]%mod;
}
int main(){
scanf("%d%d",&n,&m);
jc[0]=1;
for(int i=1;i<=N;i++) jc[i]=jc[i-1]*i%mod;
rejc[N]=ksm(jc[N],mod-2);
for(int i=N-1;i>=0;i--) rejc[i]=rejc[i+1]*(i+1)%mod;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=0;i<n;i++){
long long res=c(n,i);
for(int j=1;j<=m;j++) res=res*c(a[j]+n-i-1,n-i-1)%mod;
if(i&1) ans-=res;
else ans+=res;
ans=(ans+mod)%mod;
}
printf("%lld",ans);
return 0;
}
Wrong Answer.wrong answer On line 1 column 2, read 3, expected 0.