//再一次尝试到AC的感觉 ACMer 或许都不停的寻找这种感觉吧
继续加油 。
//终于过了 我那个郁闷啊 一直超时 原因是:太注重效率了,想复杂了。
//寻找最大朋友的个数 a是b的朋友 b是c的朋友 那么a是c的朋友
#include<stdio.h>
#define max 100010
int far[max];
int rank[max];
void init(int n)
{
for(int i=1;i<=n;i++)
{
far[i]=i;
rank[i]=1;
}
}
int find_set(int n)
{
if(n==far[n])
return n;
far[n]=find_set(far[n]);
return far[n];
}
void Union_set(int a,int b)
{
far[a]=b;
rank[b]+=rank[a];
rank[a]=0;
}
int main()
{
int n,m;
char op;
int a,b;
int step=1;
while(scanf("%d%d",&n,&m)!=EOF)
{
init(n);
if(step!=1)
printf("\n");
printf("Case %d:\n",step++);
for(int i=0;i<m;i++)
{
getchar();
scanf("%c",&op);
scanf("%d",&a);
a=find_set(a);
if(op=='M')
{
scanf("%d",&b);
b=find_set(b);
if(a!=b)
Union_set(a,b);
}
else
{
printf("%d\n",rank[a]);
}
}
}
return 0;
}