#include<bits/stdc++.h>
using namespace std;
int w,n,v[30010],ans;
int main()
{
memset(v,1e9,sizeof(v));
cin>>w>>n;//
for(int i=1;i<=n;i++)
{
cin>>v[i];
}
sort(v+1,v+1+n);
for(int i=n;i>=1;i--)//从最大的开始选
{
for(int j=n-1;j>=0;j--)//递减往下选小的
{
if(v[i]+v[j]>w)//超出了就选前一个
{
if(v[i]+v[j-1]<=w)//超出的前一个可以放
{
ans++; v[j-1]=1e9;//超出的前一个标记为分组过
break;
}
}
}//j
}
cout<<ans;
/*for(int i=1;i<=n;i++)
{
cout<<v[i]<<' ';
}*/
}