#include<stdio.h>/*只能按这种形式排序单纯一种形式是不对的,按ai排序 20 2 1 1 10 20 按bi排序 20 2 5 17 1 16 都是不对的 二a.u+b.v得出的是先算a的需要的空间,a.v+b.u算出的是先算b所需要的空间 */ #include<stdlib.h> #define N 1100 typedef struct node { int u,v; }F; F f[N]; int cmp(const void *a,const void *b) { if((*(F *)a).u+(*(F *)b).v!=(*(F *)a).v+(*(F *)b).u) return (*(F *)a).u+(*(F *)b).v>(*(F *)a).v+(*(F *)b).u?1:-1; return 0; } int main() { int n,m,i,t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=0;i<m;i++) scanf("%d%d",&f[i].u,&f[i].v); qsort(f,m,sizeof(f[0]),cmp); for(i=0;i<m;i++) { if(n>=f[i].v) n-=f[i].u; else break; } if(i==m) printf("Yes "); else printf("No "); } return 0; }