//利用母函数求排列组合
//母函数详解见 http://www.wutianqi.com/?p=596
#include<iostream>
#include<string.h>
#include<memory.h>
using namespace std;
int main(int argc, char *argv[])
{
int t;
cin>>t;
int a[2000];
int b[2000];
int n;
cin>>n;
int data[8];
for( int i=0; i<n ; i++ )
{
cin>>data[i];
}
//初始化
for(int i=0; i<=t ; i=i+data[0])//加法比乘法省时间
{
a[i]=1;
}
memset(b,0,sizeof(b));
for( int j=1; j<n ; j++ )//从下一个多项式开始
{
for( int k=0; k<=t ; k++ )
{
for( int p=0; p<=t ; p=p+data[j] )
{
b[k+p]+=a[k];
}
}
for( int k=0; k<=t ; k++ )//迭代
{
a[k]=b[k];
b[k]=0;
}
}
cout<<a[t]<<endl;
return 0;
}