#include <bits/stdc++.h>
const int Mod = (int)1e9 + 7;
const int MX = 1073741822;
const long long MXLL = 4611686018427387903;
const int Sz = 1110111;
using namespace std;
inline void Read_rap() {
  ios_base ::sync_with_stdio(0);
  cin.tie(0);
}
int n;
int t[Sz];
int add[Sz];
int a[Sz];
inline void push(int v, int tl, int tr) {
  if (tl != tr) {
    add[2 * v] += add[v];
    add[2 * v + 1] += add[v];
  }
  t[v] += add[v];
  add[v] = 0;
}
void update(int v, int tl, int tr, int l, int r, int x) {
  push(v, tl, tr);
  if (tl > r || tr < l) return;
  if (l <= tl && tr <= r) {
    add[v] += x;
    push(v, tl, tr);
    return;
  }
  int tmid = (tl + tr) >> 1;
  update(2 * v, tl, tmid, l, r, x);
  update(2 * v + 1, tmid + 1, tr, l, r, x);
  t[v] = max(t[2 * v], t[2 * v + 1]);
}
int get(int v, int tl, int tr, int l, int r) {
  push(v, tl, tr);
  if (t[v] <= 0) return -1;
  if (tl == tr) return a[tl];
  int tmid = (tl + tr) >> 1;
  push(2 * v, tl, tmid);
  push(2 * v + 1, tmid + 1, tr);
  if (t[2 * v + 1] > 0)
    return get(2 * v + 1, tmid + 1, tr, l, r);
  else if (t[2 * v] > 0)
    return get(2 * v, tl, tmid, l, r);
  return -1;
}
int main() {
  Read_rap();
  cin >> n;
  for (int i = 1; i <= n; i++) {
    int t, tp;
    cin >> t >> tp;
    if (tp == 1) {
      int x;
      cin >> x;
      a[t] = x;
      update(1, 1, n, 1, t, 1);
    } else
      update(1, 1, n, 1, t, -1);
    cout << get(1, 1, n, 1, n) << endl;
  }
  return 0;
}
