#include<bits/stdc++.h>

#define ll long long
#define fornum(A,B,C) for(A=B;A<C;++A)
#define pii pair<int,int>
#define pll pair<ll,ll>

using namespace std;

/////////////////////////////////////////////////////
#define MOD (ll)(1e9 + 7)

ll moddiv(ll a,ll b){
    a %= MOD;
    b %= MOD;
    for (ll m = MOD - 2; m > 0; m /= 2)
    {
        if(m&1){
            a=a*b%MOD;
        }
        b=b*b%MOD;
    }
    return a;
}

ll N, K;
ll A[30];
ll dp[22][1010], dp2[22][1010];
ll Fa[20202],iFa[20202];
ll i, j, k, ans;

ll C(const ll& a,const ll& b){
    return Fa[a] * iFa[b] % MOD * iFa[a - b] % MOD;
}

int main(){
    scanf("%lld%lld", &N, &K);
    fornum(i,0,K){
        scanf("%lld", &A[i]);
    }

    Fa[0] = iFa[0] = 1;
    fornum(i,0,20002){
        Fa[i + 1] = Fa[i] * (i + 1) % MOD;
        iFa[i + 1] = moddiv(1, Fa[i + 1]);
    }

    dp[0][0] = 1;
    fornum(i,0,K){
        fornum(j,0,N+1){
            fornum(k,0,N+1){
                if(j+k>N)
                    break;
                if(k>A[i])
                    break;
                dp[i + 1][j + k] += dp[i][j] * C(N-j, k) % MOD * C(N - k, A[i] - k) % MOD;
                dp[i + 1][j + k] %= MOD;
            }
        }
    }
    printf("%lld", dp[K][N]);

    return 0;
}