
#include "stdio.h"
#include "stdlib.h"
/*
贪心算法:
Ai->x 表示第i个物品的体积
Ai->y 表示第i个物品移动所需要的空间大小
前提:所有物品的移动空间都不大于容积V
Ai->x + A(i+1)->y 表示先移动第一个物品 再移动第二个物品所需要的瞬时最大空间大小
for example :
V = 10
x y
2 10
8 5
2+5 < 8+10 所以第一个物品先搬动
*/
typedef struct stuff {
int x;
int y;
}stuff;
int cmp( const void * a, const void *b ) {
int t;
stuff * x = (stuff *) a;
stuff * y = (stuff *) b;
if( x->x != y->x ) {
t = ( ( x->x + y->y ) > ( y->x + x->y ) ? 1 : -1);
}
else {
t = ( x->y < y->y ? 1 : -1 );
}
return t;
}
int main(int argc, char* argv[])
{
int t;
int v,n;
stuff e[1000];
int i;
int flag;
while( scanf( "%d" , &t ) != EOF ) {
while( t-- ) {
flag = 0;
scanf( "%d%d", &v , &n);
for( i = 0 ; i < n ; i++ ) {
scanf( "%d %d" , &e[i].x , &e[i].y ) ;
}
qsort(e,n,sizeof(e[0]),cmp);
for( i = 0 ; i < n ; i++ ) {
if( v >= e[i].x && v >= e[i].y) {
v-=e[i].x;
}
else {
flag = 1 ; break;
}
}
if( flag == 0 ) printf( "Yes
" ); else printf ( "No
" );
}
}
return 0;
}