#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stdlib.h>
#include <vector>
#include <cmath>
#include <set>
#include <map>
typedef long long ll;
typedef long double ld;
using namespace std;
#define lyh(i,a,b) for(int i = a; i <= b; ++ i)
const int mod = 998244353;
const int inf = 0x3f3f3f3f;
inline void read(int &x)
{
x=0;
int p=1;
char c=getchar();
while(!isdigit(c)){if(c=='-')p=-1;c=getchar();}
while(isdigit(c)) {x=(x<<1)+(x<<3)+(c^'0');c=getchar();}
x*=p;
}
const int N = 300;
int n,v;
int a[N];
int f[200050];
void solved()
{
cin >> v>> n;
for(int i = 1; i <= n; ++ i)cin >> a[i];
for(int i = 1; i <= n; ++ i)
{
for(int j = v; j >= a[i]; --j)
{
f[j] = max(f[j], f[j - a[i]] + a[i]);
}
}
cout << v - f[v] <<endl;
}
int main(){
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
solved();
}