#include <iostream>
#include <stdlib.h>

using namespace std;

struct info{
	int t;
	int w;
};

void func(info *a, int n)
{
	info tm;
	for(int i = n; i >= 1; i--){
		for(int j = 2; j <= i; j++){
			if(a[j].w < a[j-1].w){
				tm = a[j];
				a[j] = a[j-1];
				a[j-1] = tm;
			}
		}
	}
	
	return ;
}

int main(int argc, char **argv)
{
	int n, t;
	info *a;
	
	while(1){
		cin >> n;
		if(n == 0){
			break;
		}
		a = (info *)calloc(n+1, sizeof(info));
		
		for(int i = 1; i <= n; i++){
			cin >> a[i].t >> a[i].w;
		}
		func(a, n);
		
		t = 0;
		for(int i = 1; i <= n; i++){
			t += a[i].t;
			if(t > a[i].w){
				n = 0;
				break;
			}
		}
		
		if(n == 0){
			cout << "No" << endl;
		} else {
			cout << "Yes" << endl;
		}
		
		free(a);
	}
	
	return 0;
}