#include int max(int a, int b) { if (a > b) return a; else return b; } int seg[800005], ss; void update(int x, int v) { x += ss - 1; seg[x] = v; while (x > 0) { x = (x - 1) / 2; seg[x] = max(seg[2 * x + 1], seg[2 * x + 2]); } return; } int get_max(int l, int r) { l += ss - 1; r += ss - 1; int res = -1; while (l <= r) { res = max(res, seg[l]); l /= 2; res = max(res, seg[r]); r = r / 2 - 1; } return res; } int main() { int q; scanf("%d", &q); int t, x, k; int len = 0; for (ss = 1; ss < q; ss *= 2); for (t = 0; t < 2 * ss - 1; t++) seg[t] = -1; for (; q > 0; q--) { scanf("%d", &t); if (t == 1) { scanf("%d", &x); update(len, x); len++; } else { scanf("%d", &k); printf("%d\n", get_max(len - k, len - 1)); } } return 0; }