#include #include #ifdef LOCAL #include #define debug(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else #define debug(...) (static_cast(0)) #endif using namespace atcoder; using mint=modint1000000007; using namespace std; using ll=long long; using ul=unsigned long long; using ld=long double; int dx[8] = {1, 0, -1, 0, -1, -1, 1, 1}; int dy[8] = {0, 1, 0, -1, -1, 1, -1, 1}; int main(){ int N,Q; cin>>N>>Q; dsu uf(N); vector>st(N); setstt; for(int i=0;i>t; if(t==1){ int u,v; cin>>u>>v; u--,v--; if(uf.same(u,v))continue; int U=uf.leader(u),V=uf.leader(v); uf.merge(u,v); if(uf.leader(u)==U){ for(auto k:st[V])st[U].insert(k),stt.erase(k); } else{ for(auto k:st[U])st[V].insert(k),stt.erase(k); } } else { int v; cin>>v; v--; if(stt.size()==1)cout<<-1<