#include <bits/stdc++.h>
using namespace std;
int main() {
int V, n;
cin >> V;
cin >> n;
vector<int> w(n);
for (int i = 0; i < n; ++i) cin >> w[i];
// dp[s]:是否能恰好装到体积 s
vector<char> dp(V + 1, 0);
dp[0] = 1;
for (int x : w) {
if (x > V) continue; // 太大直接忽略
for (int s = V; s >= x; --s) // 0/1 背包倒序
if (dp[s - x]) dp[s] = 1;
}
int best = 0;
for (int s = V; s >= 0; --s) if (dp[s]) {
best = s;
break;
}
cout << (V - best) << '\n'; // 最小剩余空间
return 0;
}

京公网安备 11010502036488号