Сет
В популярной карточной игре SET цель игрока состоит в том, чтобы идентифицировать определенную тройку карт с некоторыми особыми свойствами, называемую набором. На каждой карточке изображено несколько фигурок, которые различаются по количеству, форме, прозрачности и цвету.
Марин и Иосип недавно купили колоду этих карт и теперь не могут оторваться от игры. Они настолько научились замечать наборы, что вскоре стало скучно, что карты определяются только четырьмя свойствами. Таким образом, они решили повеселиться с обобщенной версией игры.
В их распоряжении колода из разных карт. Каждая карта представлена последовательностью символов, каждый из которых является одним из , или . Порядок карт в колоде не имеет значения.
Неупорядоченная тройка карт называется набором, если для каждой из позиций три символа, соответствующие трем картам, либо одинаковы, либо попарно различны. Например, три карты, представленные , и , составляют набор, поскольку все символы в первой и третьей позициях одинаковы ( и соответственно), а символы во второй и четвертой позициях различны (, и в некотором порядке).
Глядя на эти карты на столе, они начали задаваться вопросом: сколько неупорядоченных троек этих карт составляют набор. Напишите программу, которая ответит на их вопрос.
Входные данные
Первая строка содержит целые числа и (, ) - количество карт в колоде и количество свойств одной карты соответственно.
Каждая из следующих строк содержит последовательность из символов, представляющих карту. Каждый символ является одним из , или . Разные строки содержат разные последовательности символов.
Выходные данные
Выведите количество неупорядоченных троек, образующих множество.