#include <stdio.h>
#define DEBUG 1
#define TESTCASES 9
#define MAX_VALUES 50
#define MAX_TOTALVALUE 2000000
int valueArray[MAX_VALUES + 1];
int numOfStamps, numOfValues;
int minStampsArray[MAX_TOTALVALUE + 1];
int main(){
#if DEBUG
int testCase;
for (testCase = 1; testCase <= TESTCASES; testCase++){
char inputFileName[20] = "inputx.txt";
inputFileName[5] = '1' + (testCase - 1);
freopen(inputFileName, "r", stdin);
printf("\n#%d\n", testCase);
#endif
scanf("%d%d", &numOfStamps, &numOfValues);
int i;
for (i = 1; i <= numOfValues; i++)
scanf("%d", &valueArray[i]);
int totalValue = 1;
int minStamps;
//周遊每個分值,通過周遊各種郵票來計算貼夠這個分值所需的最少郵票數
while (1){
minStamps = 300;
for (i = 1; i <= numOfValues; i++)
if (totalValue - valueArray[i] >= 0 && minStampsArray[ totalValue - valueArray[i] ] + 1 < minStamps)
minStamps = minStampsArray[ totalValue - valueArray[i] ] + 1;
if (minStamps > numOfStamps)
break;
minStampsArray[totalValue] = minStamps;
totalValue++;
}
printf("%d\n", totalValue - 1);
#if DEBUG
}
#endif
return 0;
}