#include <ctime>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
inline int read()
{
int x = 0; int v = 1, c;
while(c = getchar(), c < '0' || c > '9') if(c == '-') v = -1;
for(; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - '0';
return x * v;
}
template<typename T> inline void write(T x, int ch = 10)
{
static int s[20]; int t = 0;
if(x < 0) x = -x, putchar('-');
if(x == 0) putchar('0');
for(s[t++] = ch; x; x /= 10)
s[t++] = x % 10 + '0';
while(t--) putchar(s[t]);
}
const int maxn = 200005;
int n, pos[maxn], val[maxn], ans[maxn], sz[maxn << 2];
#define lc o << 1
#define rc lc | 1
#define Lc lc, L, M
#define Rc rc, M + 1, R
#define DM int M = (L + R) >> 1
void build(int o, int L, int R)
{
sz[o] = R - L + 1;
if(L == R) return;
DM; build(Lc); build(Rc);
}
void insert(int o, int L, int R, int pos, int val)
{
DM; sz[o]--;
if(L == R) { ans[L] = val; return; }
if(pos <= sz[lc]) insert(Lc, pos, val);
else insert(Rc, pos - sz[lc], val);
}
void input()
{
for(int i = 1; i <= n; ++i)
{
pos[i] = read() + 1;
val[i] = read();
}
build(1, 1, n);
}
void solve()
{
for(int i = n; i >= 1; --i)
insert(1, 1, n, pos[i], val[i]);
for(int i = 1; i <= n; ++i)
write(ans[i], i == n ? '\n' : ' ');
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
while(~scanf("%d", &n))
{
input();
solve();
}
#ifndef ONLINE_JUDGE
fclose(stdin), fclose(stdout);
printf("Run Time: %.3fs\n", (double)clock() / CLOCKS_PER_SEC);
#endif
return 0;
}
I2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgTEw7CgppbmxpbmUgaW50IHJlYWQoKQp7CglpbnQgeCA9IDA7IGludCB2ID0gMSwgYzsKCXdoaWxlKGMgPSBnZXRjaGFyKCksIGMgPCAnMCcgfHwgYyA+ICc5JykgaWYoYyA9PSAnLScpIHYgPSAtMTsKCWZvcig7IGMgPj0gJzAnICYmIGMgPD0gJzknOyBjID0gZ2V0Y2hhcigpKSB4ID0geCAqIDEwICsgYyAtICcwJzsKCXJldHVybiB4ICogdjsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgd3JpdGUoVCB4LCBpbnQgY2ggPSAxMCkKewoJc3RhdGljIGludCBzWzIwXTsgaW50IHQgPSAwOwoJaWYoeCA8IDApIHggPSAteCwgcHV0Y2hhcignLScpOwoJaWYoeCA9PSAwKSBwdXRjaGFyKCcwJyk7Cglmb3Ioc1t0KytdID0gY2g7IHg7IHggLz0gMTApCgkJc1t0KytdID0geCAlIDEwICsgJzAnOwoJd2hpbGUodC0tKSBwdXRjaGFyKHNbdF0pOwp9Cgpjb25zdCBpbnQgbWF4biA9IDIwMDAwNTsKCmludCBuLCBwb3NbbWF4bl0sIHZhbFttYXhuXSwgYW5zW21heG5dLCBzelttYXhuIDw8IDJdOwoKI2RlZmluZSBsYyBvIDw8IDEKI2RlZmluZSByYyBsYyB8IDEKI2RlZmluZSBMYyBsYywgTCwgTQojZGVmaW5lIFJjIHJjLCBNICsgMSwgUgojZGVmaW5lIERNIGludCBNID0gKEwgKyBSKSA+PiAxCgp2b2lkIGJ1aWxkKGludCBvLCBpbnQgTCwgaW50IFIpCnsKCXN6W29dID0gUiAtIEwgKyAxOwoJaWYoTCA9PSBSKSByZXR1cm47CglETTsgYnVpbGQoTGMpOyBidWlsZChSYyk7Cn0KCnZvaWQgaW5zZXJ0KGludCBvLCBpbnQgTCwgaW50IFIsIGludCBwb3MsIGludCB2YWwpCnsKCURNOyBzeltvXS0tOwoJaWYoTCA9PSBSKSB7IGFuc1tMXSA9IHZhbDsgcmV0dXJuOyB9CglpZihwb3MgPD0gc3pbbGNdKSBpbnNlcnQoTGMsIHBvcywgdmFsKTsKCWVsc2UgaW5zZXJ0KFJjLCBwb3MgLSBzeltsY10sIHZhbCk7Cn0KCnZvaWQgaW5wdXQoKQp7Cglmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKCXsKCQlwb3NbaV0gPSByZWFkKCkgKyAxOwoJCXZhbFtpXSA9IHJlYWQoKTsKCX0KCWJ1aWxkKDEsIDEsIG4pOwp9Cgp2b2lkIHNvbHZlKCkKewoJZm9yKGludCBpID0gbjsgaSA+PSAxOyAtLWkpCgkJaW5zZXJ0KDEsIDEsIG4sIHBvc1tpXSwgdmFsW2ldKTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQoJCXdyaXRlKGFuc1tpXSwgaSA9PSBuID8gJ1xuJyA6ICcgJyk7Cn0KCmludCBtYWluKCkKewojaWZuZGVmIE9OTElORV9KVURHRQoJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCQoJd2hpbGUofnNjYW5mKCIlZCIsICZuKSkKCXsKCQlpbnB1dCgpOwoJCXNvbHZlKCk7Cgl9CgkKI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZjbG9zZShzdGRpbiksIGZjbG9zZShzdGRvdXQpOwoJcHJpbnRmKCJSdW4gVGltZTogJS4zZnNcbiIsIChkb3VibGUpY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKTsKI2VuZGlmCglyZXR1cm4gMDsKfQ==