#include <bits/stdc++.h>
using namespace std;
int n,v,a[30],dp[20005];
int main() {
scanf("%d%d",&v,&n);
for(int i = 1;i<=n;i++)scanf("%d",&a[i]);
for(int i = 1;i<=n;i++)
for(int j = v;j>=a[i];j--)
dp[j] = max(dp[j],dp[j-a[i]]+a[i]);
printf("%d",v-dp[v]);
return 0;
}
动归有问题吗???