#include <bits/stdc++.h>
using namespace std;
int n, t[1 << 20], a[1 << 20], add[1 << 20];
inline void push(int id) {
  if (add[id] != 0) {
    add[id + id] += add[id];
    add[id + id + 1] += add[id];
    add[id] = 0;
  }
}
void update(int id, int L, int R, int x, int y, int v) {
  if (x <= L && R <= y) {
    add[id] += v;
    return;
  }
  push(id);
  int M = (L + R) >> 1;
  if (x <= M) update(id + id, L, M, x, y, v);
  if (y > M) update(id + id + 1, M + 1, R, x, y, v);
  t[id] = max(t[id + id] + add[id + id], t[id + id + 1] + add[id + id + 1]);
}
int get(int id, int L, int R) {
  if (L == R) return R;
  push(id);
  int M = (L + R) >> 1;
  int ret = -1;
  if (t[id + id + 1] + add[id + id + 1] > 0)
    ret = get(id + id + 1, M + 1, R);
  else
    ret = get(id + id, L, M);
  t[id] = max(t[id + id] + add[id + id], t[id + id + 1] + add[id + id + 1]);
  return ret;
}
int main() {
  cin >> n;
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n))) {
    int ty, p;
    scanf("%d %d", &p, &ty);
    if (ty) {
      update(1, 1, n, 1, p, 1);
      scanf("%d", a + p);
    } else
      update(1, 1, n, 1, p, -1);
    if (t[1] + add[1] < 1)
      printf("-1\n");
    else
      printf("%d\n", a[get(1, 1, n)]);
  }
}
