#include<bits/stdc++.h>
using namespace std;
inline int read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
while(isdigit(c)){x=(x<<3)+(x<<1)+c-'0';c=getchar();}return x*f;}
void Write(int x){if(x<0){x=-x;putchar('-');}if(x){Write(x/10);putchar(x%10+'0');}}
void write(int x){Write(x);putchar(' ');}
long long n,m,s=1,C[10001][101];
const long long mod=10007;
int main(){
cin>>n>>m;
C[0][0]=1;
for(long long i=1;i<=10000;i++)
for(long long j=0;j<=100;j++)
C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
for(long long i=1;i<=m;i++){
long long t;
cin>>t;
if(t>n){
cout<<0;
return 0;
}
s=(s*C[n][t])%mod;
n-=t;
}
cout<<s;
return 0;
}