#include <iostream> #include <vector> #include <algorithm> #define pb push_back using namespace std; int find(int a, vector<int>& pai){ if(a==pai[a]) return a; return pai[a] = find(pai[a],pai); } void join(int a, int b, vector<int>& pai, vector<int>& peso){ a = find(a, pai); b = find(b, pai); if(a==b) return; if(peso[a]>peso[b]){ pai[b] = a; } else if(peso[a]<peso[b]){ pai[a] = b; } else{ pai[a] = b; peso[b]++; } } int getnumber(string& s, int& i){ int num = 0, sz = s.size(); i++; for(;i<sz;i++){ if(s[i]>='0' && s[i]<='9'){ num = (num*10) + (s[i]-'0'); }else break; } num--; return num; } int main(){ int t; scanf("%d", &t); while(t--){ int n; scanf("%d", &n); vector <int> pai, peso; pai.resize(n); peso.resize(n); for(int i=0;i<n;i++){ peso[i]=0; pai[i]=i; } int a, b; string s; cin.ignore(); int hit=0, miss=0; while(getline(cin,s)){ if(s=="") break; int k=1; a = getnumber(s,k); b = getnumber(s,k); //printf("%d %d\n", a, b); if(s[0]=='c')join(a, b, pai, peso); else{ if(find(a,pai)==find(b,pai)) hit++; else miss++; } } printf("%d,%d\n", hit, miss); if(t) printf("\n"); } return 0; }