#include<cstdio>
#include<cctype>
#include<iostream>
void read(int &x) {
x = 0;
register int y = 1;
register char c = getchar();
while( !isdigit(c) ) {
if(c == '-') {
y = -1;
}
c = getchar();
}
while( isdigit(c) ) {
x = x * 10 + c - '0';
c = getchar();
}
x *= y;
}
const int MAXN = 1005;
int ufs[MAXN * 2];
int find(int x) {
if(ufs[x] == x) {
return x;
}
ufs[x] = find(ufs[x]);
return ufs[x];
}
int main() {
int n, m;
read(n), read(m);
for(int i = 1; i <= n * 2; ++i) {
ufs[i] = i;
}
for(int i = 1; i <= m; ++i) {
char opt = getchar();
int p, q;
read(p), read(q);
if(opt == 'E') {
ufs[find(p + n)] = find(q);
ufs[find(q + n)] = find(p);
} else {
ufs[find(p)] = find(q);
}
}
int cnt = 0;
for(int i = 1; i <= n; ++i) {
if(ufs[i] == i) {
++cnt;
}
}
printf("%d\n", cnt);
return 0;
}
自己机上测试样例输出结果是正确的,但是洛谷WA