#include <iostream>
using namespace std;
int dp[101][10001], n, m, temp, sum, b[101][101];
int main()
{
cin >> n >> m;
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0) b[i][j] = 1;
else if (j == i) b[i][j] = 1;
else b[i][j] = b[i - 1][j - 1] % 10007 + b[i - 1][j] % 10007;
b[i][j]%=10007;
}
}
for (int j = 0; j <= n; j++) dp[0][j] = 1;
for (int i = 1; i <= m; i++) {
cin >> temp;
sum += temp;
for (int j = 0; j <= n; j++) {
if (j < sum) dp[i][j] = 0;
else dp[i][j] = dp[i - 1][j] * b[j - sum + temp][temp];
dp[i][j] %= 10007;
}
}
cout << dp[m][n] << endl;
return 0;
}