#include #include using namespace std; using namespace atcoder; typedef modint998244353 mint; typedef long long ll; int main(){ int n, q; cin >> n >> q; dsu uf(n); set alive; for (int i=0; i> t; if (t == 1){ int u, v; cin >> u >> v; u--; v--; if (uf.same(u, v)) continue; int x = uf.leader(u); int y = uf.leader(v); alive.erase(x); alive.erase(y); uf.merge(u, v); int z = uf.leader(u); alive.insert(z); }else{ int u; cin >> u; u--; auto itr = alive.begin(); int k = *itr; if (k != uf.leader(u)){ cout << k+1 << "\n"; continue; } itr++; if (itr == alive.end()){ cout << -1 << "\n"; continue; } k = *itr; cout << k+1 << "\n"; } } }