def era(n): is_prime = [True]*(n+1) is_prime[0] = False is_prime[1] = False for i in range(2, int(n**0.5)+1): if not is_prime[i]: continue for j in range(2*i, n+1, i): is_prime[j] = False return [i for i in range(n+1) if is_prime[i]] def bellman_ford(): dist = [10**18]*(M+1) dist[M] = 0 for i in range(M): for s, t, w in edges: if dist[s]!=10**18 and dist[t]>dist[s]+w: dist[t] = dist[s]+w return dist M = int(input()) N = int(input()) C = list(map(int, input().split())) edges = [] for i in range(M, -1, -1): for Ci in C: if i-Ci>=0: edges.append((i, i-Ci, -1)) dist = bellman_ford() ans = 0 for pi in era(M-1): if dist[pi]==10**18: continue ans += -dist[pi] minC = min(C) ans += max(-dist[i] for i in range(minC) if dist[i]!=10**18) print(ans)