#include <iostream>
#include <vector>
using namespace std;
int main() {
int V,n;
cin>>V>>n;
vector<int> volumn(n,0);
for(int i=0;i<n;i++){
cin>>volumn[i];
}
//首先,构造dp[i]表示,存在一些物品的体积使得总体积为i
vector<bool> dp(V+1,false);
dp[0]=true;
for(int i=0;i<n;i++){
int v=volumn[i];
for(int j=V;j>=v;j--){
if(dp[j-v]==true){//如果dp[j-v]能填充,那再加这次的v,dp[j]依然可以填充
dp[j]=true;
}
}
}
//计算出最大能装
int maxVolumn=0;
for(int i=V;i>=0;i--){
if(dp[i]){
maxVolumn=i;
break;
}
}
cout<<V-maxVolumn;
return 0;
}
// 64 位输出请用 printf("%lld")