#include <bits/stdc++.h>
using namespace std;
long long dp[100][100];
int typ[100][100];
int n, k;
void no() {
  puts("0");
  exit(0);
}
int idx(char s[]) {
  int len = strlen(s);
  if (s[0] == '=') return 0;
  if (len == 1) {
    if (s[0] == '<') return 1;
    if (s[0] == '>') return 4;
  } else {
    if (s[0] == '<') return 2;
    if (s[0] == '>') return 3;
  }
}
int judge(int pre, int now) {
  if (pre == -1) return now;
  if (now == 0) {
    if (pre == 1 || pre == 4) no();
    return 0;
  }
  if (now == 1) {
    if (pre == 0 || pre == 3 || pre == 4) no();
    return 1;
  }
  if (now == 2) {
    if (pre == 4) no();
    if (pre == 3 || pre == 0) return 0;
    if (pre == 2) return 2;
    if (pre == 1) return 1;
  }
  if (now == 3) {
    if (pre == 1) no();
    if (pre == 2 || pre == 0) return 0;
    if (pre == 3) return 3;
    if (pre == 4) return 4;
  }
  if (now == 4) {
    if (pre == 0 || pre == 1 || pre == 2) no();
    return 4;
  }
}
bool check(int l, int r, int L, int R) {
  if (typ[l][r] == 1 || typ[l][r] == 4) return false;
  for (int i = L; i <= R; ++i) {
    int lx = typ[l][i], ly = typ[r][i];
    if (lx == 0 || lx == 3 || lx == 4) return false;
    if (ly == 0 || ly == 3 || ly == 4) return false;
  }
  return true;
}
long long solve(int l, int r) {
  if (dp[l][r] != -1) return dp[l][r];
  if (r == l + 1) {
    if (typ[l][r] == 1 || typ[l][r] == 4)
      return dp[l][r] = 0;
    else
      return dp[l][r] = 1;
  }
  long long ret = 0;
  if (check(l, r, l + 1, r - 1)) ret += solve(l + 1, r - 1);
  if (check(l, l + 1, l + 2, r)) ret += solve(l + 2, r);
  if (check(r - 1, r, l, r - 2)) ret += solve(l, r - 2);
  return dp[l][r] = ret;
}
int main() {
  memset(dp, -1, sizeof(dp));
  memset(typ, -1, sizeof(typ));
  scanf("%d%d", &n, &k);
  while (k--) {
    int x, y, tmp;
    char op[3];
    scanf("%d%s%d", &x, op, &y);
    tmp = idx(op);
    if (x == y && (tmp == 1 || tmp == 4)) no();
    tmp = judge(typ[x][y], tmp);
    typ[x][y] = tmp;
    typ[y][x] = (5 - tmp) % 5;
  }
  printf("%I64d\n", solve(1, 2 * n));
  return 0;
}
