#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int t;
    int b;
} DATA;


int comp(const void *a, const void *b)
{
    return ((*(DATA *)a).b - (*(DATA *)b).b);
}


int main(void)
{
    int n;
    DATA t[25];
    int i;
    int sum;
    int flag;
    
    while (1){
        scanf("%d", &n);
        if (n == 0){
            break;
        }
        for (i = 0; i < n; i++){
            scanf("%d%d", &t[i].t, &t[i].b);
        }
        qsort(t, n, sizeof(DATA), comp);
        
        sum = 0;
        flag = 0;
        for (i = 0; i < n; i++){
            sum += t[i].t;
// printf("(t=%d b=%d sum=%d)\n", t[i].t, t[i].b, sum);
            if (sum > t[i].b){
                flag = 1;
            }
        }
        if (flag == 0){
            printf("Yes\n");
        }
        else {
            printf("No\n");
        }
    }
    return (0);
}

