#include<bits/stdc++.h>
using namespace std;
int b[30]={20001},n,V;
int f(int n,int V,int a[])
{
int min,tmp;
if(n==0) return V;
else
{
for(int i=0;i<=29;i++)
{
if(a[i]>0&&a[i]<=V)
V-=a[i];tmp=a[i];
a[i]=0;
b[i]=f(n-1,V,a);a[i]=tmp;
}
min=b[0];
for(int j=1;j<=29;j++)
{
if(min>b[j])
min=b[j];
}
return min;
}
}
int main()
{
int a[30];
cin>>V>>n;
for(int k=0;k<n;k++)
cin>>a[k];
cout<<f(n,V,a);
return 0;
}
#include<cstdio>
using namespace std;
int m,n;
int f[20010];
int w[40];
int main(){
int i,j;
scanf("%d%d",&m,&n);
for(i=1;i<=n;i++){
scanf("%d",&w[i]);
}
for(i=1;i<=n;i++){
for(j=m;j>=w[i];j--){
if(f[j]<f[j-w[i]]+w[i]){
f[j]=f[j-w[i]]+w[i];
}
}
}
printf("%d\n",m-f[m]);
}