#include<iostream>
using namespace std;
int zh(int n,int x);
int main(void)
{
int n,m;
cin>>n>>m;
string s1,s2;
int x;
long long sum=1;
if(n>=m&&m>0)
{
for(int i=0;i<m;i++)
{
cin>>x;
sum=sum*zh(n,x);
n=n-x;
if(i<m-1&&n==0)
{
sum=0;
break;
}
}
cout<<sum%10007;
}
else if(cin>>s1>>s2)
{
cout<<0;
}
return 0;
}
int zh(int n,int x)
{
int top=1,bottom=1;
for(int i=0 ; i<x ; i++)
{
top = top*(n-i);
bottom = bottom*(i+1);
}
if(bottom>0)
return top/bottom;
else return 0;
}