/* competitive programming circle traP */
/* template */
#include <stdio.h>

int main(){
  while(true){
    int n;
    scanf("%d",&n);
    if(n==0)break;
    int a[25],b[25];
    bool used[25];
    for(int i=0;i<n;i++){
      scanf("%d%d",&a[i],&b[i]);
      used[i] = false;
    }

    int cur = 0;
    bool success = true;
    for(int i=0;i<n;i++){
      // search minimum
      int minimumid = 0;
      for(int j=1;j<n;j++){
        if(used[j])continue;
        if(used[minimumid] || b[j]<b[minimumid]){
          minimumid = j;
        }
      }
      // use it
      used[minimumid] = true;
      cur += a[minimumid];
      if(cur > b[minimumid]){
        success = false;
        break;
      }
    }
    if(success){
      printf("Yes\n");
    }else{
      printf("No\n");
    }
  }
  return 0;
}