#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+10;
typedef pair<int,int>P;
int father[maxn],rankk[maxn],ans,diren[maxn][maxn],dire[maxn];
void init(int n)
{
for(int i=1;i<=2*n;i++)
{
father[i]=i;
rankk[i]=1;
}
}
int find(int x)
{
if(father[x]==x) return x;
else return father[x]=find(father[x]);
cout<<1;
}
void unite(int x,int y)
{
x=find(x); y=find(y);
if(x==y) return;
father[y]=x;
}
int n,m,p,q;
char c;
int main(){
for(int i=1;i<=1010;i++){
dire[i]=1;
}
cin>>n>>m;
init(n);
while(m--)
{
cin>>c>>p>>q;
if(c=='F'){
unite(p,q);
}
if(c=='E'){
diren[p][dire[p]]=q;
dire[p]++;
diren[q][dire[q]]=p;
dire[q]++;
for(int i=1;i<dire[p];i++){
unite(q,diren[p][i]);
}
for(int i=1;i<dire[q];i++){
unite(p,diren[q][i]);
}
}
}
for(int i=1;i<=n;i++){
if(father[i]==i){
ans++;
}
}
cout<<ans;
return 0;
}