F. Мавзолей
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Совсем недавно скоропостижно скончался король Берляндии Берл IV. Да здравствует Берл V! В знак высочайших заслуг усопшего короля новый король решил установить мавзолей с телом Берла IV на главной площади столицы.

Мавзолей будет сооружён из 2n блоков, каждый из которых имеет форму прямоугольного параллелепипеда. Каждый из блоков имеет в нижнем основании квадрат 1 × 1 метр. Среди блоков ровно два имеют высоту один метр, ровно два имеют высоту два метра, ..., ровно два имеют высоту n метров.

Блоки будут установлены в ряд без промежутков один за другим. Конечно, не каждый порядок блоков имеет форму мавзолея. Для того, чтобы заданный порядок имел форму мавзолея, необходимо, чтобы при прохождении вдоль мавзолея от одного конца до другого высоты блоков сначала неубывали (то есть возрастали или оставались неизменными), а затем — невозрастали (то есть убывали или оставались неизменными). Допустимо, что любой из этих двух участков будет отсутствовать. Например, под это требование попадают следующие последовательности высот блоков:

  • [1, 2, 2, 3, 4, 4, 3, 1];
  • [1, 1];
  • [2, 2, 1, 1];
  • [1, 2, 3, 3, 2, 1].

Внезапно появились дополнительные k требований. Каждое из требований имеет вид: «h[xi] знакi h[yi]», где h[t] — высота t-го слева блока, а знакi — один из пяти возможных знаков '=' (равно), '<' (меньше), '>' (больше), '<=' (меньше либо равно), '>=' (больше либо равно). Таким образом, каждое из k дополнительных требований задаётся парой индексов xi, yi (1 ≤ xi, yi ≤ 2n) и знаком знакi.

Найдите количество возможных способов расставить блоки, чтобы одновременно выполнялось как требование о форме мавзолея (см. третий абзац), так и k дополнительных требований.

Входные данные

В первой строке входных данных содержатся целые числа n и k (1 ≤ n ≤ 35, 0 ≤ k ≤ 100) — количество пар блоков и количество дополнительных требований.

В следующих k строках перечислены дополнительные требования по одному в строке в формате «xi знакi yi» (1 ≤ xi, yi ≤ 2n), а знак — один из списка пяти возможных знаков.

Выходные данные

Выведите искомое количество способов.

Примеры
Входные данные
3 0
Выходные данные
9
Входные данные
3 1
2 > 3
Выходные данные
1
Входные данные
4 1
3 = 6
Выходные данные
3