#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 1e4 + 200;
ll n,m,A[N],f[N],mod = 10007,ny[N],ans = 1;
ll C(ll x,ll y){
return f[y] % mod * ny[x] % mod * ny[y - x] % mod;
}
ll power(ll a,ll b){
ll sum = 1;
while(b > 0){
if(b & 1){
sum = sum * a % mod;
sum %= mod;
}
a = a * a % mod;
a %= mod;
b >>= 1;
}
return sum % mod;
}
int main(){
ll i,j,k,ans = 1;
cin>>n>>m;
k = n;
f[0] = 1;
for(i = 1;i <= m;i++) cin>>A[i];
for(i = 1;i <= N;i++){
f[i] = f[i - 1] * (i % mod);
f[i] = f[i] % mod;
ny[i] = power(f[i],mod - 2) % mod;
}
for(i = 1;i <= m;i++){
j = C(A[i],k);
if(A[i] == k) j = 1;
k -= A[i];
ans = ans * j % mod;
ans %= mod;
}
cout<<((ans + mod) % mod + mod) % mod;
return 0;
}