#include <stdio.h>
#include <limits.h>

#define MAX_N 50001
#define MAX_M 21
int m, n;
int c[MAX_M] = {0};

void showT(int A[], int i) {
	int j;
	printf("%d\n", i);
	
	for (j = 0; j <= n; ++j) {
		printf("%d ", A[j]);
	}
	putchar('\n');
}

int getTheNumberOfCoin() {
	int i, j;
	int T[MAX_N] = {0};
	
	for (i = 0; i <= n; ++i) {
		T[i] = INT_MAX;
	}
	T[0] = 0;

	for (i = 0; i < m; ++i) {
		for (j = c[i]; j <= n; ++j) {
			T[j] = ((T[j] < T[j - c[i]] + 1) ? T[j] : T[j - c[i]] + 1);
		}
		//	showT(T, i);
	}
	return T[n];
}

int main(void) {
	int i;
	scanf("%d %d", &n, &m);

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

	printf("%d\n", getTheNumberOfCoin());
	
	return 0;
}