#include <bits/stdc++.h>
using namespace std;
int n;
int w[25], a[25];
int dist[1 << 25];
bool solve() {
  priority_queue<pair<int, int>, vector<pair<int, int> >,
                 greater<pair<int, int> > >
      que;
  for (int i = 0; i < 1 << n; ++i) dist[i] = 1000000007;
  int goal = (1 << n) - 1;
  dist[0] = 0;
  que.push(pair<int, int>(0, 0));
  while (!que.empty()) {
    pair<int, int> p = que.top();
    que.pop();
    int co = p.first, state = p.second;
    if (goal == state) return true;
    if (dist[state] < co) continue;
    for (int j = 0; j < n; ++j) {
      if ((state & (1 << j)) == 0 && co + w[j] <= a[j] &&
          co + w[j] < dist[state | (1 << j)]) {
        dist[state | (1 << j)] = co + w[j];
        que.push(pair<int, int>(co + w[j], state | (1 << j)));
      }
    }
  }
  return false;
}
int main() {
  while (cin >> n && n) {
    for (int i = 0; i < n; ++i) {
      cin >> w[i] >> a[i];
    }
    cout << (solve() ? "Yes" : "No") << endl;
  }
  return 0;
}
