#include <bits/stdc++.h>
using namespace std;
const long long nl = 1e3 + 5;
struct node {
  long long a;
  long long b;
  long long id;
} v[nl];
bool cmp1(node al, node bl) {
  if (al.b != bl.b) {
    return al.b > bl.b;
  } else {
    return al.a > bl.a;
  }
}
bool cmp(node al, node bl) {
  if (al.a != bl.a) {
    return al.a > bl.a;
  }
}
long long num = 0;
long long ml = 0;
long long n;
int main() {
  cin >> n;
  long long i, j;
  long long sum = 0;
  for (i = 0; i < n; i++) {
    cin >> v[i].a;
    cin >> v[i].b;
    v[i].id = i;
    sum += v[i].b;
  }
  sort(v, v + n, cmp1);
  if (sum < n - 1) {
    for (i = 0; i < sum; i++) {
      num += v[i].a;
    }
    num += v[sum].a;
  } else {
    for (i = 0; i < n; i++) {
      num += v[i].a;
    }
  }
  cout << num;
}
