#include <bits/stdc++.h>
using namespace std;
int n,res,ans,weight,w[1005];
bool f[1005];
void dfs(int i)
{
if(i>n)
{
ans=min(res,ans);
return;
}
for(int j=i;j<=n;j++)
{
if(f[j]==true&&res-w[j]>=0)
{
res-=w[j]; f[j]=false;
dfs(j+1);
res+=w[j]; f[j]=true;
}
}
}
int main()
{
memset(f,1,sizeof(f));
cin>>weight>>n;
res=weight;
ans=weight;
for(int i=1;i<=n;i++){
cin>>w[i];
if(w[i]>weight) f[i]=false;
}
dfs(1);
cout<<ans;
return 0;
}