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

using namespace std;

struct land {
	int gm;
	int mx;
};

bool operator<(const land& x, const land& y)
{
  return x.mx < y.mx;
}

int main(){
	int n;
	while(1){	
		vector <land> data;
		cin >> n;
		if(!n) break;	
		for(int i=0;i < n;i++){
			land p;
			cin >> p.gm >> p.mx;
			data.push_back(p);
		}	
		sort(data.begin(),data.end());	
		if(data[0].gm > data[0].mx) cout << "No" << endl;
		else {
			int flag = 1;
			for(int i=1;i < n;i++){
			 data[i].gm += data[i-1].gm;
			 if(data[i].gm > data[i].mx){flag = 0;break;}
			}
			if(flag) cout << "Yes" << endl;
			else cout << "No" << endl;
		}		
	}
	return 0;
}