#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")