#include int m, n, c[20]; int dp[10001], sieve[10001]; int main() { scanf("%d%d", &m, &n); for(int i = 0; i < n; i++) { scanf("%d", &c[i]); } dp[m] = 1; // +1 for(int i = 0; i < n; i++) { for(int j = m; 0 < j; j--) { if(c[i] < j && dp[j]) { int& r = dp[ j - c[i] ]; int s = dp[j] + 1; if(r < s) { r = s; } } } } for(int i = 2; i * i <= m; i++) { if(sieve[i] == 0) { for(int j = i * 2; j < m; j += i) { sieve[j] = 1; } } } int ans = 0; for(int i = 2; i < m; i++) { if(sieve[i] == 0 && dp[i]) { ans += dp[i] - 1; } // -1 } int min = 1000; for(int i = 0; i < n; i++) { if(c[i] < min) { min = c[i]; } } ans += m / min; printf("%d\n", ans); return 0; }