#include<iostream>
#include<cstdio>
using namespace std;
int f[100009];
int a[100009];
int findx(int i)
{
if(f[i]!=i)f[i]=findx(f[i]);
return f[i];
}
void unionn(int r1,int r2)
{
int t1=findx(r1);
int t2=findx(r2);
if(t1!=t2)
{
f[t2]=t1;
a[t1]+=a[t2];
}
}
int main()
{
int m,n;
char c;
int x,y;
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++)
{
a[i]=1;
f[i]=i;
}
for(int i=1;i<=n;i++)
{
do
{
scanf("%c",&c);
}while(c!='M'&&c!='Q');
if(c=='M')
{
scanf("%d%d",&x,&y);
if(f[x]!=f[y])unionn(x,y);
}
if(c=='Q')
{
scanf("%d",&x);
printf("%d\n",a[findx(x)]);
}
}
return 0;
}
1389:亲戚
最新推荐文章于 2023-02-06 19:30:43 发布