https://www.luogu.com.cn/problem/P1892
/*
a的敌人都在n+a集合里面
if(a,b)是敌人
那么 a与n+b是一个集合,(敌人的敌人是朋友)
b与n+a是一个集合。
*/
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int N=20010;
int n,m,dist[N],ans=0;
int p[N];
int find(int x){
if(x!=p[x]) p[x]=find(p[x]);
return p[x];
}
void solve()
{ cin>>n>>m;
for(int i=1;i<=2*n;i++){
p[i]=i;
}
while(m--){
char s;
int z,y;
cin>>s>>z>>y;
int tz=n+z,ty=n+y;
z=find(z),y=find(y);
if(s=='E'){
tz=find(tz),ty=find(ty);
p[z]=ty;
p[y]=tz;
}else{
p[z]=y;
}
}
for(int i=1;i<=n;i++){
int ti=find(i);
if(dist[ti]) continue;
ans++;
dist[ti]=1;
}
cout<<ans;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
solve();
return 0;
}