#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 ****************************************************************/