#include #include #include #include #include #include #include using namespace std; using ll = long long; int main() { int T, n; cin >> T >> n; int t[17]; for (int i = 0; i < n; i++) { cin >> t[i]; } vector dp(1 << n); for (int k = 1; k < 1 << n; k++) { int s = 0; for (int i = 0; i < n; i++) { if (k & 1 << i) s += t[i]; } if (s <= T) { dp[k] = 1; } else { int x = n; for (int l = k; l = (l - 1) & k;) { x = min(x, dp[l] + dp[k ^ l]); } dp[k] = x; } } cout << dp[(1 << n) - 1] << endl; return 0; }