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

Одним из способов проведения какого-либо турнира является формат playoff. В турнире участвуют N = 2k команд. В самом начале команды разбиваются на пары, победители в каждой паре проходят дальше по турнирной сетке, играя по аналогичным правилам для вдвое меньшего количества игроков, а проигравшие занимают низ итоговой таблицы. Заметим, что победитель последней встречи является победителем всего турнира.

Одним из минусов этой системы является неполная объективность результатов: не все команды играют между собой для определения чемпиона. Для того, чтобы занять первое место, нужно выиграть всего лишь k встреч. Из-за этого высока непредсказуемость результатов и всё зачастую зависит от изначального расположения команд на старте турнира.

Вы работаете в организации, которая собирается провести крупный турнир. Начальство хочет выбрать стартовую расстановку лично. Для удобства, названия команд заменены на уникальный номер от 1 до N, а расстановка записывается как последовательность этих чисел. Специальный менеджер уже подготовил M вариантов расстановок, но за миг до то того, как предоставить их для рассмотрения обнаружил, что некоторые из них являются эквивалентными. Допустим, мы будем знать исход встречи для каждой возможной пары команд. Тогда, две стартовые расстановки называются эквивалентными, если итоговые таблицы этих сеток совпадут. Матчи, сыгранные в этих сетках, будут одни и те же, возможно, в другом порядке.

Чтобы не нагружать начальство, менеджер попросил вас о помощи. По заданному списку расстановок посчитайте количество различных из них, то есть тех, которые не являются эквивалентными. Если вы сделаете это быстро, вам будет обеспечено место в первых рядах до конца турнира.

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

В первой строке содержатся два натуральных числа N и M (1 ≤ N × M ≤ 219; N является степенью числа 2).

Следующие M строк содержат расстановки, в каждой строке содержится по N различных чисел от 1 до N.

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

Выведите в единственную строку количество различных предложенных расстановок.

Примеры
Входные данные
4 6
1 2 3 4
4 3 2 1
1 3 2 4
4 3 1 2
1 4 2 3
3 2 1 4
Выходные данные
3
Входные данные
2 2
1 2
2 1
Выходные данные
1
Примечание

В первом примере эквивалентными являются три расстановки [1, 2, 3, 4], [4, 3, 2, 1] и [4, 3, 1, 2], а также две [1, 4, 2, 3], [3, 2, 1, 4].