#include <iostream>
using namespace std;
typedef long long ll;
const ll mod = 10007;
ll A[114514];
ll ExGCD(ll a, ll b, ll &x, ll &y) {
if (b == 0) {
x = 1, y = 0;
return a;
}
ll d = ExGCD(b, a % b, x, y), t = x;
x = y, y = t - a / b * x;
return d;
}
ll ExGcdInv(ll a, ll b)
{
ll x, y;
ExGCD(a, b, x, y);
return x;
}
ll _C(ll n, ll m) {
ll t1 = 1;
for (int i = m + 1; i <= n; i++) {
t1 *= i;
t1 %= mod;
}
ll ans;
for (int i = 2; i <= n - m; i++) {
t1 *= ExGcdInv(i, mod);
t1 += mod;
t1 %= mod;
}
return t1 % mod;
}
int main() {
ll n, m;
cin >> n >> m;
ll ans = 1;
ll x;
for (int i = 1; i <= m; i++) {
cin >> A[i];
ans *= _C(n, A[i]);
ans += mod;
ans %= mod;
n -= A[i];
}
cout << ans % mod;
return 0;
}