#include<cstdio>
#include<algorithm>
using namespace std;
int pd[10001]={0};
struct node{
int price,bit;
};
node m;
void find(int x,int y)
{
if(y<=0) return;
else
{ //滚动向前;
if(x>pd[y])
{
m.price=pd[y];
m.bit=y-1;
pd[y]=x;
find(m.price,m.bit);
}
else
{
y=y-1;
find(x,y);
}
}
}
int main()
{
int n,i,j,k,x,y,total=0,flag;
//freopen("test.txt","r",stdin);
while(scanf("%d",&n)!=EOF)
{
total=0;
for(i=1;i<=10000;i++) pd[i]=0; //简陋的初始化数组
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
if(x>pd[y])
{
m.price=pd[y];
m.bit=y-1;
pd[y]=x;
find(m.price,m.bit);
}
else
{
y--;
find(x,y);
}
}
for(i=1;i<=10000;i++)
{
if(pd[i]!=0) total=total+pd[i];
}
printf("%d\n",total);
}
}