#include <bits/stdc++.h>
using namespace std;
long long powmod(long long a, long long b, long long MOD) {
  long long res = 1;
  a %= MOD;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % MOD;
    a = a * a % MOD;
  }
  return res;
}
const int maxn = 1e9 + 10;
const int maxq = 2e5 + 10;
int n, qn;
struct Bar {
  int l, r, lb, ub;
  Bar() {}
  Bar(int d1, int d2, int d3, int d4) : l(d1), r(d2), lb(d3), ub(d4) {}
  inline bool operator<(const Bar& rhs) const { return r < rhs.r; }
};
set<Bar> S;
set<int> S1;
char buf[100];
int main(int argc, char** argv) {
  scanf("%d%d", &n, &qn);
  S.insert(Bar(1, n, 1, 1));
  for (int i = 0; i < qn; ++i) {
    int d1, d2;
    scanf("%d%d%s", &d1, &d2, buf);
    if (S1.count(d1) != 0) {
      printf("0\n");
      continue;
    }
    auto p = S.lower_bound(Bar(0, d1, 0, 0));
    Bar q = *p;
    S.erase(p);
    if (buf[0] == 'U') {
      printf("%d\n", d2 - q.ub + 1);
      S.insert(Bar(q.l, d1 - 1, q.lb, q.ub));
      S.insert(Bar(d1 + 1, q.r, d1 + 1, q.ub));
    } else if (buf[0] == 'L') {
      printf("%d\n", d1 - q.lb + 1);
      S.insert(Bar(q.l, d1 - 1, q.lb, d2 + 1));
      S.insert(Bar(d1 + 1, q.r, q.lb, q.ub));
    }
    S1.insert(d1);
  }
  return 0;
}
