#include<bits/stdc++.h>
using namespace std;
int n,m;
int f[10005];
int find(int );
void unity(int ,int );
int main() {
scanf("%d%d",&n,&m);
for(int i=1; i<=n*2; i++) {
f[i]=i;
}
for(int i=1; i<=m; i++) {
char c;
int x,y;
cin>>c>>x>>y;
if(c=='F') {
unity(x,y);
}
if(c=='E') {
unity(x+n,y);
unity(x,y+n);
}
}
int ans=0;
for(int i=1; i<=n; i++) {
if(f[i]==i) {
ans++;
}
}
printf("%d",ans);
return 0;
}
int find(int x) {
if(f[x]==x)return x;
else return f[x]=find(f[x]);
}
void unity(int x,int y) {
f[find(x)]=find(y);
}
我感觉我的方法是对的,但是WA了。不知道哪里出错了,有没有大佬指点一下。