#include <bits/stdc++.h>
using namespace std;
struct card {
  int a, b;
};
bool sort0(card x, card y) {
  if (x.b > y.b)
    return true;
  else if (x.b < y.b)
    return false;
  else if (x.a > y.a)
    return true;
  else
    return false;
}
int main() {
  int n;
  cin >> n;
  vector<card> v(n);
  for (int i = 0; i < n; i++) cin >> v.at(i).a >> v.at(i).b;
  sort(v.begin(), v.end(), sort0);
  int k = 1;
  int i = 0, sum = 0;
  while (i < n && k > 0) {
    k--;
    k += v.at(i).b;
    sum += v.at(i).a;
    i++;
  }
  cout << sum;
  return 0;
}
