#include<iostream>
#include<sstream>
#include<fstream>
#include<cstdio>
#include<vector>
#include<list>
#include<stack>
#include<queue>
#include<deque>
#include<map>
#include<set>
#include<algorithm>
#include<string>
#include<cmath>
#include<cstdlib>
using namespace std;

struct data{
	int x;
	int y;
};	

bool order(data a,data b){
	if(a.y==b.y)a.x<b.x;
	return a.y<b.y;
}

int main(){
	int n;
	while(scanf("%d",&n)==1,n){
		vector<data> table;
		for(int x=0;x<n;++x){
			data nv;
			scanf("%d %d",&nv.x,&nv.y);
			table.push_back(nv);
		}	
		sort(table.begin(),table.end(),order);
		int acum = 0;
		while(table.size()>0){
			acum += table[0].x;
			if(acum>table[0].y)break;
			table.erase(table.begin()+0);
		}
		if(table.size()==0){
			cout<<"Yes"<<endl;
		}else{
			cout<<"No"<<endl;
		}	
	}
	return 0;
}