#include <bits/stdc++.h>
using namespace std;
int n, L;
int a[25];
int ans;
void backtrack(int i, int X, int Y, int cnt) {
if (i == n + 1) {
ans = min(ans, cnt);
return;
}
// Thêm vào thùng 1
if (X - a[i] >= 0) {
backtrack(i + 1, X - a[i], Y, cnt);
}
else {
backtrack(i + 1, L - a[i], Y, cnt + 1);
}
// Thêm vào thùng 2
if (Y - a[i] >= 0) {
backtrack(i + 1, X, Y - a[i], cnt);
}
else {
backtrack(i + 1, X, L - a[i], cnt + 1);
}
}
void do_sub1() {
ans = 1e9;
backtrack(1, L, L, 2);
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> L >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
if (L <= 1e9 && n <= 20) do_sub1();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAoKaW50IG4sIEw7ICAgCmludCBhWzI1XTsgCmludCBhbnM7ICAKCnZvaWQgYmFja3RyYWNrKGludCBpLCBpbnQgWCwgaW50IFksIGludCBjbnQpIHsKCWlmIChpID09IG4gKyAxKSB7CgkJYW5zID0gbWluKGFucywgY250KTsgCgkJcmV0dXJuOyAKCX0KCgkvLyBUaMOqbSB2w6BvIHRow7luZyAxIAoJaWYgKFggLSBhW2ldID49IDApIHsKCQliYWNrdHJhY2soaSArIDEsIFggLSBhW2ldLCBZLCBjbnQpOyAgCgl9CgllbHNlIHsKCQliYWNrdHJhY2soaSArIDEsIEwgLSBhW2ldLCBZLCBjbnQgKyAxKTsgCgl9CgoJLy8gVGjDqm0gdsOgbyB0aMO5bmcgMgoJaWYgKFkgLSBhW2ldID49IDApIHsKCQliYWNrdHJhY2soaSArIDEsIFgsIFkgLSBhW2ldLCBjbnQpOyAgIAoJfQoJZWxzZSB7CgkJYmFja3RyYWNrKGkgKyAxLCBYLCBMIC0gYVtpXSwgY250ICsgMSk7IAoJfQp9Cgp2b2lkIGRvX3N1YjEoKSB7CglhbnMgPSAxZTk7ICAKCWJhY2t0cmFjaygxLCBMLCBMLCAyKTsgCgljb3V0IDw8IGFucyA8PCAnXG4nOyAgIAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAKCWNpbiA+PiBMID4+IG47ICAgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOyAgCgoJaWYgKEwgPD0gMWU5ICYmIG4gPD0gMjApIGRvX3N1YjEoKTsgIAp9Cg==