#include <stdio.h>
#include <stdlib.h>
#define M 100

int main() {
    int m,n;
    while (scanf("%d", &m) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        scanf("%d",&n);
        int*arr=(int*)malloc(sizeof(int)*n);
        for(int i=0;i<n;i++)scanf("%d",arr+i);
        int dp[M+1];
        for(int i=0;i<M;i++)dp[i]=-1;
        dp[0]=0;
        for(int i=0;i<n;i++){
            for(int j=M;j>=arr[i];j--){
                if(j>=arr[i]&&dp[j-arr[i]]!=-1){
                    int temp=dp[j-arr[i]]+1;
                    if(dp[j]==-1||dp[j]>temp)dp[j]=temp;
                }
            }
        }
        printf("%d\n", dp[m]!=-1?dp[m]:0);
        free(arr);
    }
    return 0;
}