#include<cstdio>
#include<cstring>
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MAX_N 200010
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
int lo[MAX_N],v[MAX_N],co[MAX_N],ans[MAX_N];
int t[MAX_N<<2],n;
void build(int l,int r,int rt)
{
if(l==r)
{
t[rt]=1;
return ;
}
int m=(l+r)>>1;
build(lson);
build(rson);
t[rt]=t[rt<<1]+t[rt<<1|1];
}
int add(int i,int l,int r,int rt)
{
int res;
if(l==r)
{
t[rt]=0;
return l;
}
int m=(l+r)>>1;
if(i<t[rt<<1])
res=add(i,lson);
else
res=add(i-t[rt<<1],rson);
t[rt]=t[rt<<1]+t[rt<<1|1];
return res;
}
int main()
{
while(~scanf("%d",&n))
{
build(0,n-1,1);
for(int i=0;i<n;i++)
scanf("%d%d",&lo[i],&v[i]);
for(int i=n-1;i>=0;i--)
{
co[i]=add(lo[i],0,n-1,1);
ans[co[i]]=v[i];
}
for(int i=0;i<n;i++)
printf("%d ",ans[i]);
printf("\n");
}
}
12-02
1091