//KY13 最小邮票数
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int n, a[20], m, dp[105];
int main()
{
    while(cin>>m>>n){
        for(int i=0;i<105;i++) dp[i]=100;
        for(int i=1;i<=n;i++) {cin>>a[i];}
        dp[0]=0;//总数为0时,需要0张邮票
        for(int i=1;i<=n;i++){
            for(int j=m;j>=a[i];j--){
                dp[j]=min(dp[j],dp[j-a[i]]+1);
            }
        }
        if(dp[m]==100) cout<<0<<"\n";
        else cout<<dp[m]<<"\n";
    }
    return 0;
}