#include
#include
#include
#include
using namespace std;
int coinschange(int *coins, int n, int m, set<vector>&s, vectorout, int *dp){
if(n==0){
sort(out.begin(),out.end());
if(s.find(out)!=s.end())
return 0;
else{
s.insert(out);
return 1;
}
}
if(n<0){
return 0;
}
int ans=0;
for(int i=0; i<m; i++){
out.push_back(coins[i]);
ans+=coinschange(coins,n-coins[i],m,s,out,dp);
out.pop_back();
}
return ans;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int n;
cin>>n;
int m;
cin>>m;
int coins[m];
for(int i=0; i<m; i++){
cin>>coins[i];
}
int dp[100]={0};
set<vector<int>>s;
vector<int>out;
cout<<coinschange(coins,n,m,s,out,dp);
return 0;
}