#include <stdio.h>
int main() {
int w;
scanf("%d", &w);
int n;
scanf("%d", &n);
int min = 0;
int a[30005]={0};
int flag[30005] = { 0 };//标记是否被选过
int num=0;//组数
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (a[j] > a[i]) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for (int i = 0; i < n; i++) {
if (flag[i] == 1)continue;
for (int j = i + 1; j < n; j++) {
if (flag[i] == 1) {
if (j == n - 1) { num++; flag[i] = 1; } continue;
}
if (a[j] + a[i] <= w) {
flag[i] = 1;
flag[j] = 1;
num++;
break;
}
else if (j == n - 1) num++;
}
}
printf("%d", num);
return 0;
}