#include <bits/stdc++.h>
using namespace std;
map<pair<int,bool>,int>mp;
//此题向上吃只与大于等于自己的操作相关.向左吃,只与小于等于x的操作相关
//因此用map记录向右向上的操作,每次操作进行二分查找即可
int main()
{
int n,q;
scanf("%d%d",&n,&q);
mp[make_pair(n+1,1)]=mp[make_pair(0,0)]=1;//0向右操作,1向上操作
for(int i=0;i<q;i++)
{
int x,y;
char s;
scanf("%d%d%c%c",&x,&y,&s,&s);
int res;
map<pair<int,bool>,int>::iterator it;
if(s=='U')
{
it=mp.lower_bound(make_pair(x,0));
}
else
{
it=--mp.upper_bound(make_pair(x,1));//为保证找的点小于等于x点因此查找后向前移动一位即可
}
if(it->first.first==x)
{
printf("0\n");
continue;
}
bool t=s=='U';
if(it->first.second==t)
{
res=mp[make_pair(x,t)]=it->second;
if(t==1)
{
res=y-res+1;
}
else
{
res=x-res+1;
}
}
else
{
if(t==1)
{
res=mp[make_pair(x,t)]=n+2-it->first.first;
res=y-res+1;
}
else
{
res=mp[make_pair(x,t)]=it->first.first+1;
res=x-res+1;
}
}
printf("%d\n",res);
}
return 0;
}