#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;
}