#include #include #include #include #include #include #include #include #include using namespace std; #define rep(i,a,n) for (int i=a;i=a;i--) #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #define se second #define SZ(x) ((int)(x).size()) typedef vector VI; typedef long long ll; typedef pair PII; const ll mod=1000000007; ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} // head const int N=101000; int _,n,f[N],s[N],u,v,w; int find(int x) {return f[x]==x?x:f[x]=find(f[x]); } int main() { for (scanf("%d",&_);_;_--) { scanf("%d",&n); rep(i,1,n+1) f[i]=i,s[i]=0; rep(i,1,n) { scanf("%d%d%d",&u,&v,&w); if (w) continue; f[find(u)]=find(v); } rep(i,1,n+1) s[find(i)]++; int ans=0; rep(i,1,n+1) ans^=s[find(i)]; printf("%d\n",ans); } }