using System;
using System.Collections;
using System.Collections.Generic;
 
class TEST{
	static void Main(){
		while(true){
			var n=int.Parse(Console.ReadLine());
			if(n==0)break;
			Sol mySol =new Sol(n);
			mySol.Solve();
		}
	}
}

class Sol{
	public void Solve(){
		List<Pair> L=new List<Pair>();
		
		for(int i=0;i<N;i++){
			var d=ria();
			L.Add(new Pair(d[0],d[1]));
		}
		
		L.Sort((x,y)=>(x.W-x.T)>(y.W-y.T)?1:(x.W-x.T)<(y.W-y.T)?-1:0);
		
		bool chk=true;
		int sum=0;
		for(int i=0;i<N;i++){
			sum+=L[i].T;
			if(sum>L[i].W){
				chk=false;
				break;
			}
		}
		
		Console.WriteLine(chk?"Yes":"No");
		
		
	}
	
	int N;
	public Sol(int n_){
		N=n_;
	}
	
	class Pair{
		public int T;
		public int W;
		public Pair(int t,int w){
			T=t;W=w;
		}
	}



	static String rs(){return Console.ReadLine();}
	static int ri(){return int.Parse(Console.ReadLine());}
	static long rl(){return long.Parse(Console.ReadLine());}
	static double rd(){return double.Parse(Console.ReadLine());}
	static String[] rsa(){return Console.ReadLine().Split(' ');}
	static int[] ria(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>int.Parse(e));}
	static long[] rla(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>long.Parse(e));}
	static double[] rda(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>double.Parse(e));}
}