#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>

using namespace std;

int main() {
	ifstream fin("DATA4.txt");
	ofstream fout("OUT4.txt");

	int price, coins;
	int thistype, needed;
	int c[10];
	int dp[10][100];
	int mod;

	for (int cc = 0; cc < 5; cc++) {
		fin >> price >> coins;

		needed = 0;

		for (int i = 0; i < coins; i++) {
			fin >> c[i];
		}

		memset(dp, 0, sizeof(dp));

		for (int i = 0; i * c[0] <= price; i++) {
			if (i % c[0] == 0) {
				dp[0][i] = i / c[0];
			}
		}

		for (int coin = 1; coin < coins; coin++) {
			for (int i = 0; i <= price; i++) { // For every price
				if (dp[coin-1][i] != 0 || i == 0) { // If the last one isn't zero or starting at zero
					for (int j = 0; j * c[coin] + i <= price; j++) { // Keep adding j number of coins
						if (dp[coin][j*c[coin]+i] == 0) {
							dp[coin][j*c[coin]+i] = dp[coin-1][i] + j;
						} else {
							dp[coin][j*c[coin]+i] = min(dp[coin][j*c[coin]+i], dp[coin-1][i] + j);
						}
					}
				}
			}
		}


		fout << dp[coins-1][price] << endl;
	}

	return 0;
}

