#include #include using namespace std; using namespace atcoder; void fast_io() { ios_base::sync_with_stdio(false); cin.tie(nullptr); } int main() { fast_io(); int n, q; cin >> n >> q; set leaders; dsu uf(n); for (int i = 0; i < n; i++) { leaders.insert(i); } for (; q--;) { int type; cin >> type; if (type == 1) { int u, v; cin >> u >> v; u = uf.leader(u - 1); v = uf.leader(v - 1); if (u != v) { uf.merge(u, v); if (u != uf.leader(u)) { leaders.erase(u); } else { leaders.erase(v); } } } if (type == 2) { int v; cin >> v; v--; v = uf.leader(v); if (leaders.size() == 1) { cout << "-1\n"; } else if (*leaders.begin() == v) { cout << *leaders.rbegin() + 1 << "\n"; } else { cout << *leaders.begin() + 1 << "\n"; } } } }