#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define max(a, b)	(((a) > (b)) ? (a) : (b))		/* ２個の値の最大値 */
#define min(a, b)	(((a) < (b)) ? (a) : (b))		/* ２個の値の最小値 */
#define ENTER		printf("\n")					/* 改行プリント */
/********************************************************************************************************************************/
/* main *************************************************************************************************************************/
/********************************************************************************************************************************/
int DEBUG = 0;										/* デバッグプリント 提出時は0 */

int main()
{
	int		n,m,c[21],i,j;
	int		dp[50001];
	scanf("%d %d", &n, &m);
	for(i=0; i<m; i++) {
		scanf("%d",&c[i]);
	}

	for(i=0;i<m;i++) {
		if (c[i]==1) {
			c[i] = c[0];
			c[0] = 1;
		}
	}
	dp[0] = 0;
	for(i=1;i<=n;i++) {
		dp[i] = 0x7fffffff;
	}
	for(i=0;i<m;i++) {
		for(j=0; j+c[i]<=n; j++) {
			dp[j+c[i]] = min( dp[j+c[i]] , dp[j]+1 );
			if (DEBUG) printf("%d %d dp[%d]:%d\n",i,j,j+c[i], dp[j+c[i]]);
		}
	}

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

	return 0;
}

