#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,s=1,t,a[10005][105];
int main(){
cin>>n>>m;
a[0][0]=1;
for (i=1; i<=10000; i++)
for (j=0; j<=100; j++)
a[i][j]=(a[i-1][j-1]+a[i-1][j])%10007;
for (i=1; i<=m; i++){
cin>>t;
s*=a[n][t];
s%=10007;
n-=t;
}
cout<<s;
return 0;
}
第 10 行 a[i-1][j-1]当访问到j=0时不会出错re吗?