#include <iostream>
#include <algorithm>

const int MX = 2e4 + 5;

int main () {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(0);

    int S, N; std::cin>>S>>N;
    int ar[N];
    for(int i = 0; i < N; i++) {
        std::cin>>ar[i];
    }
    std::sort(ar, ar + N);

    int dp[MX]; dp[0] = 0;
    for(int i = 1; i <= S; i++) {
        dp[i] = dp[i - 1] + 1;
        for(int j = 0; j < N; j++) {
            if (ar[j] == 1) continue;
            if (ar[j] > i) break;
            dp[i] = std::min(dp[i], dp[i - ar[j]] + 1);
        }
    }
    std::cout<<dp[S]<<"\n";
    return 0;
}

/*
0 < S < 20 000, 0 < N < 2 000


22 5
1 4 8 12 15

4
Пояснение: 22 = 1 + 1 + 8 + 12


1000 7
30 1 12 2 11 18 14

35

*/
