P1049 [NOIP2001 普及组] 装箱问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
V = int(input())
n = int(input())
data = []
dp = [[0]*(V+1) for _ in range(n+1)]
for i in range(1,n+1):
w = int(input())
for j in range(1,V+1):
if j<w:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j],dp[i-1][j-w]+w)
print(V-dp[n][V])