#include using namespace std; // 搞一个并查集 // 如果 i 和 i+1 都是 1,连 i 和 i+1 // 求 1 在的连通块大小 int n, fa[5000005]; bitset<5000005> x; int find(int x) { return !fa[x] ? x : fa[x] = find(fa[x]); } void unite(int s, int t) { s = find(s), t = find(t); if (s == t) return; fa[s] = t; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 1; i <= n; ++i) { int a, b; cin >> a >> b; if (a == 1) { if (!x[b]) { x[b] = 1; if (b > 1 && x[b - 1]) unite(b - 1, b); if (b < n && x[b + 1]) unite(b, b + 1); } } else { if (x[b]) { if (!x[1]) cout << "1\n"; else cout << find(1) + 1 << '\n'; } else { if (!x[1]) { if (b == 1) { if (n > 1 && x[2] == 1) cout << find(2) + 1 << '\n'; else cout << 2 << '\n'; } else cout << "1\n"; } else { int s = find(1); if (b != s + 1) cout << s + 1 << '\n'; else { if (b != n && x[b + 1] == 1) cout << find(b + 1) + 1 << '\n'; else cout << b + 1 << '\n'; } } } } } }