#include<iostream>
#include<queue>
using namespace std;
priority_queue<int> q;
int e[1000];
int main(){
int V,n,now=0;
cin>>V>>n;
for(int i=0;i<n;++i){
int x;
cin>>x;
if(x<V)q.push(x);
if(x==V) {
cout<<0;
return 0;
}
}
while(now<=V){
if(q.empty())break;
if(now==V){
cout<<0;
return 0;
}
if(now+q.top()<=V){
now+=q.top();
}else{
q.pop();
break;
}
q.pop();
}
int l=0;
while(!q.empty()){
e[++l]=q.top();
q.pop();
}
for(int i=l;i>=1;i--){
if(now==V){
cout<<0;
return 0;
}
if(e[i]+now<=V){
now+=e[i];
}
}
cout<<V-now;
}