#include <bits/stdc++.h>
using namespace std;
const int maxk = 101, maxn = 100000 + 10;
long long n, k, a[maxk], dp[maxk][maxn];
long long f(int x, long long num) {
  if (num == 0) return 0;
  if (x == k + 1) return num;
  if (num < maxn && dp[x][num] != -1) return dp[x][num];
  long long p = f(x + 1, num) - f(x + 1, num / a[x]);
  if (num < maxn) return dp[x][num] = p;
  return p;
}
bool cmp(int x, int y) { return y < x; }
int main() {
  memset(dp, -1, sizeof dp);
  cin >> n >> k;
  for (int i = 1; i <= k; i++) cin >> a[i];
  sort(a + 1, a + 1 + k, cmp);
  cout << f(1, n) << endl;
  return 0;
}
