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

using namespace std;

typedef struct{
	int weight,bridge;
}sima;


bool lessw(const sima& Left,const sima& Right){return Left.weight<Right.weight;}
bool lessb(const sima& Left,const sima& Right){return Left.bridge<Right.bridge;}

vector<sima> tou;
int n;

int main(){
	while(cin>>n){
		if(n==0)break;
		
		tou.clear();
		
		for(int i=0;i<n;i++){
			int w,b;
			cin>>w>>b;
			sima t={w,b};
			tou.push_back(t);
		}
		
		
		
		int cuw=0,difmin=0;
		stable_sort(tou.begin(),tou.end(),lessw);
		stable_sort(tou.begin(),tou.end(),lessb);
		
		int out=0;
		for(int i=0;i<n;i++){
			cuw+=tou[i].weight;
			if(cuw>tou[i].bridge){
				out=1;
				break;
			}
		}
		
		if(out==1)puts("No");
		else puts("Yes");
	}
	return 0;
}