#include<iostream>
#include<queue>
#include<vector>
#include<algorithm>

using namespace std;

#define MAX_N 25

int n;
queue<int> que;

struct Island{
	int treasure;
	int bridge;

	bool operator<(const Island& right)const{
		return bridge > right.bridge;
	}

};

int main(){
	int x;
	do{
		cin >> x;
		que.push(x);
	} while (x);

	do{
		n = que.front();
		que.pop();
		if (n == 0)break;
		vector <Island> x(n);

		for (int i = 0; i < n; i++){
			x[i].treasure = que.front();
			que.pop();
			x[i].bridge = que.front();
			que.pop();
		}

		sort(x.begin(), x.end());
		bool ok=true;
		for (int i = 0; i < n; i++){
			int sum = 0;
			for (int j = i; j < n; j++){
				sum += x[j].treasure;
			}
			if (x[i].bridge < sum){
				ok = false;
			}
		}
		if (ok){
			cout << "Yes" << endl;
		}
		else{
			cout << "No" << endl;
		}

	} while (1);

	return 0;
}