#include #include using namespace std; struct Box { int Ai; int Bi; }; bool compare(Box a, Box b) { return a.Bi > b.Bi; } bool judge(int V, int N, int record, int maxAi, int maxBi, int allAi, Box *boxes) { if (allAi > V || maxAi > V || maxBi > V) { return false; } sort(boxes, boxes + N, compare); for (int i = 0; i < record; i++) { if (boxes[i].Bi > V) { return false; } V -= boxes[i].Ai; } return true; } int main() { int T, V, N; Box *boxes; while (cin >> T) { for (int i = 0; i < T; i++) { cin >> V >> N; int maxAi = 0, maxBi = 0; int allAi = 0; int record = 0; boxes = new Box[N]; for (int j = 0; j < N; j++) { Box box; cin >> box.Ai >> box.Bi; allAi += box.Ai; if (box.Bi > box.Ai) { boxes[j] = box; record++; } } cout << (judge(V, N, record, maxAi, maxBi, allAi, boxes) ? "Yes" : "No") << endl; free(boxes); } } return 0; }