#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
bool debug = false;
int n;
int weight[30], max_weight[30];
bool DFS(int now, int cnt, bool used[]) {
  bool ok = false;
  if (cnt == n) return true;
  for (int i = 0; i < int(n); i++) {
    if (!used[i] && now + weight[i] <= max_weight[i]) {
      used[i] = true;
      ok = DFS(now + weight[i], cnt + 1, used);
      if (ok) return true;
      used[i] = false;
    }
  }
  return false;
}
int main() {
  bool used[30];
  while (cin >> n) {
    if (n == 0) break;
    for (int i = 0; i < int(n); i++) used[i] = false;
    for (int i = 0; i < int(n); i++) cin >> weight[i] >> max_weight[i];
    bool ok = false;
    for (int i = 0; i < int(n); i++) {
      used[i] = true;
      if (DFS(weight[i], 1, used)) ok = true;
      used[i] = false;
    }
    if (ok)
      cout << "Yes" << endl;
    else
      cout << "No" << endl;
  }
}
