#include <bits/stdc++.h>
using namespace std;
const int M = 1024 * 128;
pair<int, int> D[2 * M];
int T[2 * M], n;
int get(int v, int rem) {
  if (D[v].second <= rem) return -1;
  if (v >= M) return T[v];
  if (D[2 * v + 1].second > rem) return get(2 * v + 1, rem);
  return get(2 * v, rem + D[2 * v + 1].first - D[2 * v + 1].second);
}
void add(int v, int w) {
  v += M;
  if (w == 1)
    D[v].second++;
  else
    D[v].first++;
  while (v > 1) {
    v /= 2;
    if (D[2 * v].second >= D[2 * v + 1].first)
      D[v] = make_pair(D[2 * v].first, D[2 * v + 1].second + D[2 * v].second -
                                           D[2 * v + 1].first);
    else
      D[v] = make_pair(D[2 * v].first + D[2 * v + 1].first - D[2 * v].second,
                       D[2 * v + 1].second);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = (0); i <= ((int)(n)-1); i++) {
    int a, b, c;
    scanf("%d%d", &a, &b);
    if (b == 1) {
      scanf("%d", &c);
      add(a, 1);
      T[M + a] = c;
    } else
      add(a, -1);
    printf("%d\n", get(1, 0));
  }
  return 0;
}
