#include #include using namespace std; const int N = 19; int t, n, a[N], dp[1 << N]; int main() { // freopen("clone.in", "r", stdin); // freopen("clone.out", "w", stdout); scanf("%d%d", &t, &n); for (int i = 1; i <= n; ++i) scanf("%d", &a[i]); memset(dp, 0x3f, sizeof(dp)); dp[0] = 0; for (int i = 0; i < 1 << n; ++i) { int remain = t - dp[i] % t; // 还剩多久 for (int j = 0; j < n; ++j) { if (!(i & (1 << j))) { int x = a[j + 1] <= remain ? a[j + 1] : remain + a[j + 1]; if (dp[i | (1 << j)] > dp[i] + x) { dp[i | (1 << j)] = dp[i] + x; } } } } printf("%d\n", (dp[(1 << n) - 1] + t - 1) / t); return 0; }