#include <iostream>
#include <vector>
#include <fstream>
using namespace std;

ifstream in("DATA4.txt");
ofstream out("OUT4.txt");

vector<int> coins;
int maxdepth;

bool go(int depth, int coinsleft, int valleft){
	if (coins[depth]*coinsleft == valleft) return 1;
	if (depth == maxdepth) return 0;
	bool ret = 0;
	for (int i = 0; i != coinsleft; ++i){
		int nval = valleft - coins[depth]*i;
		if (nval < 0) break;
		ret = ret || go(depth + 1, coinsleft - i, nval);
	}
	return ret;
}

int main(){
	for (int p = 0; p != 5; ++p){
		int val, numcoins, c, i;
		in >> val >> numcoins;
		coins.clear();
		for (i = 0; i != numcoins; ++i){
			in >> c;
			coins.push_back(c);
		}
		maxdepth = numcoins - 1;
		for (i = 0; i != 100; ++i)
			if(go(0, i, val)) break;

		out << i << endl;
	}
	return 0;
}

