#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>

int min(int a,int b)
{
  if(a<b)
    return a;
  else
    return b;
}

int main(void)
{
  int i,j,m,n,**T,*c;
  scanf("%d %d",&n,&m);
  T=malloc(sizeof(int *)*(m+1));
  for(i=0;i<m+1;i++)
    T[i]=malloc(sizeof(int)*(n+1));
  c=malloc(sizeof(int)*(m+1));

  for(i=1;i<m+1;i++)
    scanf("%d",&c[i]);

  for(i=0;i<m+1;i++)
    T[i][0]=0;

  for(i=1;i<n+1;i++)
    T[0][i]=99999;

  for(i=1;i<m+1;i++)
    for(j=1;j<n+1;j++)
      T[i][j]=min(T[i-1][j],T[i][j-c[i]]+1);
  
  printf("%d\n",T[m][n]);
  return 0;
}