#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <set>

#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,j) FOR(i,0,j)
#define mp std::make_pair

const int INF = 1 << 24;
const int dx[8] = {0, 0, 1, -1, 1, 1, -1, -1}, dy[8] = {1, -1, 0, 0, 1, -1, 1, -1};

typedef unsigned long long ull;
typedef std::pair<int,int> P;

int N;    
P is[25];
int sum = 0;

bool can(){
    bool used[25];
    std::fill(used, used+N, false);

    REP(i, N){
        int v = -1;
        REP(j, N){
            if(is[j].first >= sum && !used[j] && (v == -1 || is[j].second > is[v].second)){
                v = j;
            }
        }
        if(v == -1){return false;}

        used[v] = true;
        sum -= is[v].second;
    }

    return true;
}

int main(){
    while(std::cin >> N, N){
        sum = 0;
        REP(i, N){
            std::cin >> is[i].second >> is[i].first;
            sum += is[i].second;
        }

        std::sort(is, is+N);

        if(can()){puts("Yes");}
        else{puts("No");}
    }
}