#include using namespace std; int n, a[5000005], fa[5000005], v[5000005]; int get(int x) { return x == fa[x] ? x : fa[x] = get(fa[x]); } void join(int x, int y) { x = get(x); y = get(y); fa[y] = x; v[x] = max(v[x], v[y]); } int main() { scanf("%d", &n); for (int i = 1; i <= n; i++) fa[i] = i, v[i] = i; for (int i = 1; i <= n; i++) { int op, x; scanf("%d %d", &op, &x); if (op == 1) { a[x] = 1; if (a[x - 1]) join(x - 1, x); if (a[x + 1]) join(x, x + 1); } else { int ans = v[get(1)]; if (x == ans + 1 && a[x] == 0) { if (a[x + 1]) ans = v[get(x + 1)]; else ans = x; } if (a[1] == 0 && x != 1) ans = 0; printf("%d\n", ans + 1); } } return 0; }