#include<stdio.h>
int a[30010],n,w,ans;
void sort(int r,int t)
{
	int mid=a[(r+t)/2];
	int i=r,j=t;
	do
	{
		while(a[i]<mid)	i++;
		while(a[j]>mid)	j--;
		if(i<=j)
		{
			int e=a[i];
			a[i]=a[j];
			a[j]=e;
			i++;
			j--;
		}
	}while(i<=j);
	if(i<t)	sort(i,t);
	if(j>r)	sort(r,j);
}
int main()
{
	scanf("%d %d",&w,&n);
	for(int i=1;i<=n;i++)
	scanf("%d",&a[i]);
	sort(1,n);
	int i=1,j=n;
	while(i<=j)
	{
		if(a[i]+a[j]<=w)
		{
			i++;
			j--;
		}
		else
		j--;
		ans++;
	}
	printf("%d",ans);
	return 0;
}
/**************************************************************
	Problem: 1484
	User: admin
	Language: C
	Result: Accepted
	Time:69 ms
	Memory:1260 kb
****************************************************************/