#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:32777216")
using namespace std;
int parse(char c) {
  if (c == 'L') return 0;
  if (c == 'R') return 1;
  assert(false);
}
int ch[105][105];
int r[105][105];
int l[105][105];
int mx[105];
bool vis[105];
int Z, N;
int ans[105];
bool dfs(int i, int high) {
  if (i > high) return false;
  if (vis[i]) return false;
  vis[i] = true;
  int mr = 1000000000;
  for (int j = (1); j <= (N); ++j)
    if (j != i && r[i][j]) mr = min(mr, j);
  mx[i] = i;
  int left_idx = i + 1;
  int right_idx = i + 1;
  if (dfs(left_idx, min(high, mr - 1))) {
    right_idx = mx[left_idx] + 1;
    mx[i] = mx[left_idx];
  } else {
    left_idx = 0;
    right_idx = i + 1;
  }
  ans[Z++] = i;
  if (dfs(right_idx, high)) {
    mx[i] = mx[right_idx];
  } else {
    right_idx = 0;
  }
  for (int j = (1); j <= (N); ++j) {
    if (ch[i][j] && (j < i || j > mx[i])) return false;
    if (r[i][j] && (right_idx == 0 || j < right_idx || j > mx[right_idx]))
      return false;
    if (l[i][j] && (left_idx == 0 || j < left_idx || j > mx[left_idx]))
      return false;
  }
  return true;
}
char s[20];
int main() {
  Z = 0;
  int C, a, b;
  scanf("%d%d", &N, &C);
  for (int q = 0; q < (C); ++q) {
    scanf("%d%d%s", &a, &b, &s[0]);
    if (b <= a) {
      printf("IMPOSSIBLE\n");
      return 0;
    }
    ch[a][b] = true;
    if (s[0] == 'L')
      l[a][b] = true;
    else
      r[a][b] = true;
  }
  for (int i = (N); i >= (1); --i)
    for (int j = (N); j >= (i + 1); --j)
      for (int k = (i + 1); k <= (j - 1); ++k) {
        if (i == j || i == k || k == j) continue;
        if (r[i][j] && ch[k][j]) r[i][k] = ch[i][k] = true;
        if (l[i][j] && ch[k][j]) l[i][k] = ch[i][k] = true;
        if (ch[i][j] && i < k && k < j) ch[i][k] = true;
      }
  for (int i = (1); i <= (N); ++i)
    for (int j = (1); j <= (N); ++j) {
      if (l[i][j] && r[i][j]) {
        cout << "IMPOSSIBLE" << endl;
        return 0;
      }
    }
  if (dfs(1, N) && Z == N) {
    for (int i = (1); i <= (N); ++i) cout << ans[i - 1] << " ";
    cout << endl;
  } else {
    cout << "IMPOSSIBLE" << endl;
  }
}
