#include<iostream>
using namespace std;
int n,m,f[10010],e[10010],ans;
int find(int a)
{ if(f[a]==a)
{ return a; }
return f[a]=find(f[a]);
}
int main()
{ cin>>n>>m;
for(int i=1;i<=n;i++)
{ f[i]=i; }
char a; int b,c,p,q;
for(int i=0;i<m;i++)
{ cin>>a>>b>>c;
p=find(b);
q=find(c);
if(a=='F')
{ f[p]=q; }
else
{ if(e[b]==0)
{ e[b]=q; }
else
{ f[q]=e[b]; }
if(e[c]==0)
{ e[c]=p; }
else
{ f[p]=e[c]; }
}
}
for(int i=1;i<=n;i++)
{ if(f[i]==i)
{ ans++; }
}
cout<<ans;
}
20分,错的点全部都是MLE,看了下题解感觉好像也没找到什么问题啊...