/* コイン問題 */

#include <stdio.h>

int main(void)
{
	int n, m;
  int coin[20];
  int num[50001];
  int i, j, new_num;

  scanf("%d %d", &n, &m);
  for (i = 0; i < m; i++) {
    scanf("%d", &coin[i]);
  }

	for (i = 0; i < n + 1; i++) {
    num[i] = i;
  }

  /* 扱うコインの種類を１枚ずつ増やしていく */
  for (i = 1; i < m; i++) {
    /* 払うお金がj円のときに、コインiで払ってみる */
		for (j = coin[i]; j < n + 1; j++) {
      /* コインiで払ってみた時、コインの枚数がどう変わるか */
      new_num = num[j - coin[i]] + 1;

      if (new_num < num[j]) {
        num[j] = new_num;
      }
    }
  }

  printf("%d\n", num[n]);

  return 0;
}