<Problem>
http://ntucoder.net/Problem/Details/2252
Uses Crt;
Var n,i,j,k:longint; s,t:int64; a,b:array[1..1000000] of longint;
Procedure H(var a,b:longint); var tg:longint; begin tg:=a; a:=b; b:=tg; end;
Procedure Sort(l,r:longint);
var i,j,x:longint;
begin
i:=l; j:=r; x:=b[(l+r) div 2];
repeat
while b[i]>x do inc(i); while b[j]<x do dec(j);
if i<=j then begin H(a[i],a[j]); H(b[i],b[j]); inc(i); dec(j); end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
Begin
readln(n);
for i:=1 to n do
begin
read(a[i],b[i]);
end;
sort(1,n);
for i:=1 to n do
if b[i]=0 then break;
for j:=i to n-1 do
for k:=j+1 to n do
if a[j]<a[k] then H(a[j],a[k]);
t:=1; s:=0;
for i:=1 to n do
if (t>0) then
begin
s:=s+a[i];
t:=t-1+b[i]; (*b[i] co the bang 0*)
end;
writeln(s);
readln;
End.