using System.Collections.Generic;
using System.Linq;
using System;

public class Island
{
    public int bridge { get; set; }
    public int itotal { get; set; }
    public int itreasure { get; set; }
}
public class hello
{
    public static void Main()
    {
        while (true)
        {
            var templist = new List<Island>();
            var n = int.Parse(Console.ReadLine().Trim());
            if (n == 0) break;
            for (int i = 0; i < n; i++)
            {
                string[] line = Console.ReadLine().Trim().Split(' ');
                templist.Add(new Island { itreasure = int.Parse(line[0]), bridge = int.Parse(line[1]) });
            }
            var islands = templist.OrderBy(x => x.itreasure).ThenBy(y => y.bridge).ToList();

            islands[0].itotal = islands[0].itreasure;
            if (islands.Count() == 1)
                if (islands[0].itotal > islands[0].bridge) { Console.WriteLine("No"); goto loopend; }
             else { Console.WriteLine("Yes"); goto loopend; }
            for (int i = 1; i < n; i++)
            {
                islands[i].itotal = islands[i - 1].itotal + islands[i].itreasure;
                if (islands[i].itotal > islands[i].bridge)
                {
                    Console.WriteLine("No");
                    goto loopend;
                }
            }
            Console.WriteLine("Yes");
            loopend:;
        }
    }
}