package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n int64
var k int
if _, err := fmt.Fscan(in, &n, &k); err != nil {
return
}
a := make([]int64, 0, k)
hasOne := false
for i := 0; i < k; i++ {
var x int64
fmt.Fscan(in, &x)
if x == 1 {
hasOne = true
}
a = append(a, x)
}
if hasOne {
fmt.Fprintln(out, 0)
return
}
f := make([]int64, 0, len(a))
for _, x := range a {
if x <= n && x > 1 {
f = append(f, x)
}
}
if len(f) == 0 {
fmt.Fprintln(out, n)
return
}
sort.Slice(f, func(i, j int) bool { return f[i] < f[j] })
var div int64 = 0
var rec func(start int, prod int64, sign int64)
rec = func(start int, prod int64, sign int64) {
for i := start; i < len(f); i++ {
x := f[i]
if prod > n/x {
break
}
p := prod * x
div += sign * (n / p)
rec(i+1, p, -sign)
}
}
rec(0, 1, 1)
ans := n - div
fmt.Fprintln(out, ans)
}