#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

struct DATA{
  int value;
  int bridge;
};

bool Compare(const DATA&, const DATA&);

int main(){
  int i, n, v, b, sum, giveup;
  DATA onedata;
  vector<DATA> data;

  while(1){
    cin >> n;
    if(n == 0) break;

    for(i=0; i<n; ++i){
      cin >> v >> b;
      onedata.value = v;
      onedata.bridge = b;
      data.push_back(onedata);
    }

    sort(data.begin(), data.end(), Compare);

    for(i=0, sum=0, giveup=0; i<n; ++i){
      sum += data[i].value;
      if(sum > data[i].bridge){
	giveup = 1;
	break;
      }
    }

    if(giveup == 0)
      cout << "Yes" << endl;
    else
      cout << "No" << endl;

    data.clear();
  }

  return 0;
}

bool Compare(const DATA& x, const DATA& y){
  if(x.bridge == y.bridge)
    return (x.value <= y.value);
  else
    return (x.bridge < y.bridge);
}