#include<bits/stdc++.h>
using namespace std;
int s,n;
int dp[20007][2007];
int a[2007];/*
int f(int sm, int ch)
{
    //cout<<sm<<" "<<ch<<"\n";
    if (sm<0) return 70000;
    if (sm==0) return 0;
    if (ch==n) return 70000;
    if (b[sm][ch])
    {
        return dp[sm][ch];
    }
    b[sm][ch]=true;
    int aa=1+f(sm-a[ch],ch);
    int bb=f(sm,ch+1);
    dp[sm][ch]=min(aa,bb);
    return dp[sm][ch];
}*/
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>s>>n;
    for (int q=0;q<n;q++) cin>>a[q];
    sort(a,a+n);
    for (int q=0;q<=s;q++) dp[q][0]=q;
    for (int q=1;q<n;q++)
    {
        for (int w=0;w<=s;w++)
        {
            if (w==0)
            {
                dp[w][q]=0;
                continue;
            }
            if (a[q]>w)
            {
                dp[w][q]=dp[w][q-1];
            }
            else
            {
                dp[w][q]=min(dp[w][q-1],1+dp[w-a[q]][q]);
            }
        }
    }
    cout<<dp[s][n-1]<<"\n";
}
