#include <iostream>
using namespace std;
const int maxn=210;
pair<int,int> fat[maxn][maxn];
int size[maxn][maxn];
int n,k,p;
bool pis(pair<int,int> a,pair<int,int> b){
return (a.first==b.first&&a.second==b.second);
}
pair<int,int> find(int x,int y){
if(pis(fat[x][y],make_pair(x,y))) return make_pair(x,y);
pair<int,int> root=find(fat[x][y].first,fat[x][y].second);
return fat[x][y]=root;
}
bool in(int x1,int y1,int x2,int y2){
pair<int,int> xr=find(x1,y2),yr=find(x2,y2);
return pis(xr,yr);
}
void merge(int x1,int Y1,int x2,int Y2){
pair<int,int> xr=find(x1,Y1);
pair<int,int> yr=find(x2,Y2);
if(size[xr.first][xr.second]>=size[yr.first][yr.second]) fat[yr.first][yr.second]=fat[xr.first][xr.second],size[xr.first][xr.second]+=size[yr.first][yr.second];
else fat[xr.first][xr.second]=fat[yr.first][yr.second],size[yr.first][yr.second]+=size[xr.first][xr.second];
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
int x,y;
char ch;
cin>>x>>y>>ch;
if(ch=='D') merge(x,y,x,y-1);
else merge(x,y,x+1,y);
}
return 0;
}