#include <iostream>
#include <cstring>
using namespace std;
const int N = 110, INF = 0x3f3f3f3f;
int f[N], w[N];
int main(){
    int n;
    int m;
    while(cin>>m){
        memset(f, 0x3f, sizeof f);
        cin>>n;
        for(int i = 1; i <= n; i ++){
            cin>>w[i];
        }
        f[0] = 0;
        for(int i = 1; i <= n; i ++)
            for(int j = m; j >= w[i]; j --){
                f[j] = min(f[j], f[j-w[i]] + 1);
            }
        if(f[m] != INF) cout<<f[m]<<endl;
        else cout<<0<<endl;
    }
}

01背包