#include <algorithm>
#include <iostream>
#include <cstring>
using namespace std;
typedef long long ll;
const int LIM_X = 1e6 + 16;
const int LIM_N = 11;
int x, n;
int p[LIM_N];
ll f[LIM_X][LIM_N];
ll magic(int v = x, int t = 0)
{
if (v < 0) return 0;
if (v == 0) return 1;
if (t >= n) return 0;
ll &res = f[v][t];
if (res != -1) return res;
res = magic(v - p[t], t + 0) + magic(v - 0, t + 1);
return res;
}
int main()
{
ios::sync_with_stdio(NULL);
cin.tie(NULL);
cin >> x >> n;
for (int i = 0; i < n; ++i)
cin >> p[i];
sort(p, p + n);
n = unique(p, p + n) - p;
memset(f, -1, sizeof(f));
cout << magic();
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCmNvbnN0IGludCBMSU1fWCA9IDFlNiArIDE2Owpjb25zdCBpbnQgTElNX04gPSAxMTsKCmludCB4LCBuOwppbnQgcFtMSU1fTl07CmxsIGZbTElNX1hdW0xJTV9OXTsKbGwgbWFnaWMoaW50IHYgPSB4LCBpbnQgdCA9IDApCnsKICAgIGlmICh2IDwgMCkgcmV0dXJuIDA7CiAgICBpZiAodiA9PSAwKSByZXR1cm4gMTsKICAgIGlmICh0ID49IG4pIHJldHVybiAwOwoKICAgIGxsICZyZXMgPSBmW3ZdW3RdOwogICAgaWYgKHJlcyAhPSAtMSkgcmV0dXJuIHJlczsKCiAgICByZXMgPSBtYWdpYyh2IC0gcFt0XSwgdCArIDApICsgbWFnaWModiAtIDAsIHQgKyAxKTsKICAgIHJldHVybiByZXM7Cn0KCmludCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oTlVMTCk7CiAgICBjaW4udGllKE5VTEwpOwoKICAgIGNpbiA+PiB4ID4+IG47CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICBjaW4gPj4gcFtpXTsKCiAgICBzb3J0KHAsIHAgKyBuKTsKICAgIG4gPSB1bmlxdWUocCwgcCArIG4pIC0gcDsKICAgIAogICAgbWVtc2V0KGYsIC0xLCBzaXplb2YoZikpOwogICAgY291dCA8PCBtYWdpYygpOwogICAgcmV0dXJuIDA7Cn0=