#include #include using namespace std; int main() { int n, q; cin >> n >> q; atcoder::dsu uf(n); multiset s; for (int i = 0; i < n; i++){ s.insert(i); } while (q--){ int t; cin >> t; if (t == 1){ int u, v; cin >> u >> v; u--; v--; s.erase(s.find(uf.leader(u))); s.erase(s.find(uf.leader(v))); uf.merge(u, v); s.insert(uf.leader(u)); s.insert(uf.leader(v)); } else { int u; cin >> u; u--; if (uf.size(u) == n){ cout << -1 << endl; } else { if (*s.begin() != uf.leader(u)){ cout << (*s.begin()) + 1 << endl; } else { cout << (*prev(s.end())) + 1 << endl; } } } } }