#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=100005;
int n,m,fa[maxn<<2],c=1,cnt,T,num[maxn<<2],r[maxn<<2],ans;
inline void init(){
ans=n; cnt=n;
for(int i=1;i<=n;++i) r[i]=i,fa[i]=i,num[i]=1;
}
inline int find(int x){
if(fa[x]==x) return x;
else return fa[x]=find(fa[x]);
}
inline void initup(){
memset(r,0,sizeof(r));
memset(fa,0,sizeof(fa));
memset(num,0,sizeof(num));
}
int main(){
//freopen("game.in","w",stdin);
//freopen("game.out","r",stdout);
scanf("%d",&T);
while(T--){
printf("Case #%d:\n",c);
initup();
scanf("%d%d",&n,&m);
init();
while(m--){
string s; int x,y;
cin>>s;
if(s=="query"){
printf("%d\n",ans);
}
if(s=="fight"){
scanf("%d%d",&x,&y);
int xx=find(r[x]),yy=find(r[y]);
if(xx==yy) continue;
else if(num[xx]<num[yy]){
printf("%d is winner\n",y);
fa[xx]=yy;
num[yy]+=num[xx];
ans--;
}
else if(num[xx]>num[yy]){
printf("%d is winner!\n",x);
fa[yy]=xx;
num[xx]+=num[yy];
ans--;
}
else printf("Either is winner!\n");
}
if(s=="tempt"){
scanf("%d%d",&x,&y);
int xx=find(r[x]),yy=find(r[y]);
if(xx!=yy){
if(num[yy]==1) ans--;
r[y]=++cnt;
fa[r[y]]=r[x];
num[xx]++; num[yy]--;
}
}
if(s=="revolt"){
scanf("%d",&x);
int xx=find(r[x]);
if(num[xx]==1) continue;
num[xx]--;
r[x]=++cnt;
fa[r[x]]=r[x];
num[r[x]]=1;
ans++;
}
}
}
}