#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> l;
int w,n,buf,Count=0;
int main(){
scanf("%d%d",&w,&n);
for(int i=0;i<n;i++){
scanf("%d",&buf);
l.push_back(buf);
}
sort(l.begin(),l.end());//向量排序
for(int i=0;i<n;i++){
for(int j=l.size()-1;j>i;j--)//从头和尾开始相加比较
{
if(l[i]+l[j]<=w)//这一组大于w就删除这两个元素
{
//cout<<l[i]<<" "<<l[j]<<endl;//输出中间变量
l.erase(l.begin()+j);
l.erase(l.begin()+i);
Count++;
i--;//每出去一组,i要往前移动一位,保证第一个没有匹配过
break;
}
}
}
Count+=l.size();
/*for(vector<int>::iterator it=l.begin();it!=l.end();it++)
printf("%d ",*it);*/
printf("%d",Count);
return 0;
}