/* 
 * File:   main.cpp
 * Author: administrator
 *
 * Created on 2011å¹´8æ27æ¥, ä¸å12:42
 */

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <map>
#include <set>
#include <math.h>
using namespace std;

/*
 * 
 */
struct node{
    int good,up;
}a[50];
bool cmp(node b,node c){
        return b.up<c.up;
}
int main(int argc, char** argv) {
    int n,i,j;
    while(scanf("%d",&n),n){
        for(i=1;i<=n;i++)
            scanf("%d %d",&a[i].good,&a[i].up);
        sort(a+1,a+n+1,cmp);
        int tot=0;
        for(i=1;i<=n;i++)
            if(tot>a[i].up)break;
            else {
                tot+=a[i].good;
                if(tot>a[i].up)break;
            }
        if(i==n+1)printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}