#include #define int long long #define vec vector #define forn(i, n) for(int i = 0;i>(a)[i] #define write(a) forn(i, (a).size()) cout<<(a)[i] << " "; cout << "\n"; using namespace std; int mod = 1e9+7; vec used; vec > g; void dfs(int v){ if(used[v]) return; used[v] = true; for(int u: g[v]) dfs(u); } void solve(){ int n; cin>>n; map tr; int ind = 0; for(int i=0;i>x>>y; if(tr.find(x)==tr.end()){ tr[x] = ind; ind++; } if(tr.find(y)==tr.end()){ tr[y] = ind; ind++; } while(g.size()