#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cctype>
#include <cmath>
#define LOCAL
#define M 20
using namespace std;
int c[M][M];
void Combination() // 将所有的C(n,k)都计算了,时间复杂度为O(N^2);
{
memset(c,0,sizeof(c));
for(int i = 0;i <= 16;i++)
{
c[i][0] = 1;
for(int k = 1;k <= i;k++)
c[i][k] = c[i-1][k-1] + c[i-1][k];
}
}
/*
//另一种较快的方法针对特定的一个N, C(n,k) = (n-k+1)/k * C(n,k-1)
C[0] = 1;
for(int i = 1;i <= n;i++) C[i] = C[i-1]*(n-i+1)/i;
*/
int main()
{
#ifdef LOCA
freopen("in.in","r",stdin);
#endif
int n,k;
int q[M];
Combination();
while(cin>>n>>k)
{
for(int i = 0;i < k;++i)
cin>>q[i];
int sum = 1,cnt = n;
for(int i = 0;i < k;++i)
{
sum *= c[cnt][q[i]];
cnt -= q[i];
}
cout<<sum<<endl;
}
return 0;
}