#include<bits/stdc++.h>
using namespace std;

typedef long long lint;
typedef long double ldouble;
#define REP(i, x, n) for(int i = x ; i < n ; i++)
#define rep(i, n) REP(i, 0, n)
#define repr(i, n) for(int i = n - 1 ; i >= 0 ; i--)
#define SORT(c) sort((c).begin(), (c).end())

const int IINF = 1e9 + 10;
const lint LLINF = 1e18;
const lint MOD = 1e9 + 7;
const lint inv = MOD - 2;

struct island{
    lint value, allow;
};

bool compare(island a, island b){
    return a.allow < b.allow;
}

bool solve(int n){
    vector<island> v(n);
    rep(i, n){
        cin >> v[i].value >> v[i].allow;
    }
    sort(v.begin(), v.end(), compare);
    int now = 0;
    rep(i, n){
        now += v[i].value;
        if(now > v[i].allow){
            return false;
        }
    }
    return true;
}

int main(){
    int n;
    while(cin >> n && n){
        if(solve(n)){
            cout << "Yes" << endl;
        }else{
            cout << "No" << endl;
        }
    }
    return 0;
}
