#include<stdio.h>
#define MAX 10000
#define INF 10000

int min(int a,int b){
if(a>b)return b;

return a;
}

int main(){
int n,i,x,j;
int A[MAX];
int dp[MAX][MAX]={0};
int cnt=0;

scanf("%d %d",&x,&n);
for(i=1;i<=n;i++)scanf("%d",&A[i]);

for(i=0;i<=n;i++){
 for(j=0;j<=x;j++){
  dp[i][j]=INF;
 }
}

dp[0][0]=0;


for(i=1;i<=n;i++){

 for(j=0;j<=x;j++){

   if(dp[i-1][j]!=-1){

    dp[i][j]=min(dp[i-1][j],dp[i][j]);

    if(j+A[i]<=x){
      dp[i][j+A[i]]=dp[i-1][j]+1;
      
    }

   }
 }
 
}




if(dp[n][x]!=INF)printf("%d",dp[n][x]);


return 0;
}
