#include<bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 7;
int dp[23][1003] , jc[1003] , inv[1003] , N , K , A[23];

int poww(long long a , int b){
	int times = 1;
	while(b){
		if(b & 1) times = times * a % MOD;
		a = a * a % MOD; b >>= 1;
	}
	return times;
}

int binom(int a , int b){return 1ll * jc[a] * inv[b] % MOD * inv[a - b] % MOD;}

int main(){
	cin >> N >> K; for(int i = 1 ; i <= K ; ++i) cin >> A[i];
	dp[0][0] = 1; jc[0] = 1;
	for(int i = 1 ; i <= N ; ++i) jc[i] = 1ll * jc[i - 1] * i % MOD;
	inv[N] = poww(jc[N] , MOD - 2);
	for(int i = N - 1 ; i >= 0 ; --i) inv[i] = inv[i + 1] * (i + 1ll) % MOD;
	for(int i = 1 ; i <= K ; ++i)
		for(int j = 0 ; j <= N ; ++j)
			if(dp[i - 1][j])
				for(int k = 0 ; k <= A[i] && k + j <= N ; ++k)
					dp[i][j + k] = (dp[i][j + k] + 1ll * dp[i - 1][j] * inv[k] % MOD * binom(N - k , A[i] - k)) % MOD;
	cout << 1ll * dp[K][N] * jc[N] % MOD;
	return 0;
}