#include <bits/stdc++.h>
int dr[] = {2, 2, -2, -2, 1, -1, 1, -1};
int dc[] = {1, -1, 1, -1, 2, 2, -2, -2};
int dr1[] = {0, 0, 1, 1, 1, -1, -1, -1};
int dc1[] = {1, -1, 1, 0, -1, 0, 1, -1};
int dr2[] = {0, 0, 1, -1};
int dc2[] = {1, -1, 0, 0};
using namespace std;
long long int ans, n, k;
long long int a[1005], dp[102][100005];
long long int coun(long long int x, long long int num) {
  if (x > k) return num;
  if (num <= 100000) {
    long long int &r = dp[x][num];
    if (r != -1) return r;
    r = coun(x + 1, num) - coun(x + 1, num / a[x]);
    return r;
  } else
    return coun(x + 1, num) - coun(x + 1, num / a[x]);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int k1, x;
  while (cin >> n >> k) {
    bool f = 0;
    for (long long int i = 1; i < k + 1; i++) {
      cin >> a[i];
      if (a[i] == 1) f = 1;
    }
    if (f == 1) {
      cout << "0" << endl;
      continue;
    }
    sort(a + 1, a + k + 1);
    reverse(a + 1, a + k + 1);
    memset(dp, -1, sizeof(dp));
    long long int ans = coun(1, n);
    cout << ans << endl;
  }
  return 0;
}
