#include <iostream>
#include <algorithm>
using namespace std;
int num[300100];
int w,n;
bool judgea() {
for(int i = 1; i <= n; i++) {
if(num[i]!=0) {
return true;
}
}
return false;
}
bool judgeb() {
for(int l=1; l<n; l++) {
for(int r=n; r>l; r--) {
if(num[l]+num[r]<w&&num[l]!=0&&num[r]!=0) {
return true;
}
}
}
return false;
}
int main() {
cin>>w>>n;
for(int i = 1; i <= n; i++) {
cin>>num[i];
}
sort(num,num+n);
int cnt=0;
while(judgea()) {
for(int l=1; l<n; l++) {
for(int r=n; r>l; r--) {
if(num[l]+num[r]==w) {
cnt ++;
num[l]=0;
num[r]=0;
}
}
}
while(judgeb()) {
for(int l=1; l<n; l++) {
for(int r=n; r>l; r--) {
if(num[l]+num[r]<w&&num[l]!=0&&num[r]!=0) {
num[r]=num[r]+num[l];
num[l]=0;
}
}
}
}
for(int i = 1; i<=n; i++) {
if(num[i]!=0) {
num[i]=0;
cnt++;
}
}
}
cout<<cnt;
return 0;
}