#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e4 + 20;
struct node {
  int a;
  int b;
} c[maxn];
bool cmp(node x, node y) {
  if (x.b != y.b)
    return x.b > y.b;
  else
    return x.a > y.a;
}
int main() {
  int n;
  cin >> n;
  int k = 1;
  int cnt = 0;
  for (int i = 0; i < n; i++) {
    cin >> c[i].a >> c[i].b;
    if (c[i].b > 0) {
      k += c[i].b - 1;
      cnt += c[i].a;
    }
  }
  sort(c, c + n, cmp);
  for (int i = 0; k > 0 && i < n; i++) {
    if (c[i].b == 0) {
      cnt += c[i].a;
      k--;
    }
  }
  cout << cnt << endl;
  return 0;
}
