#include using namespace std; #include using namespace atcoder; #define rep(i, n) for (int i = 0; i < (n); ++i) #define YES cout << "Yes" << endl; #define NO cout << "No" << endl; #define chmin(a,b) a=min(a,b) #define chmax(a,b) a=max(a,b) using mint = modint998244353; void solve() { // ここに1テストケース分の処理を書く int n,q; cin>>n>>q; int u=n; dsu d(n),x(n); vector>p; rep(i,q){ int t,a,b; cin>>t>>a>>b; if(t==0){ if(!d.same(a-1,b-1))u--; d.merge(a-1,b-1); } else{ p.push_back({a-1,b-1}); } } for(auto [z,v]:p){ if(d.same(z,v)){ cout<<0<> t; // テストケース数が最初に入力される問題の場合は、ここのコメントアウトを解除する while (t--) { solve(); } }