Codeforces Round 612 (Div. 2) |
---|
Закончено |
Пчёлки Алиса и Алеся подарили пчеловодке Полине на Новый Год знаменитую карточную игру «Set». Колода для игры состоит из карт, каждая из которых обладает набором из четырех признаков: тип фигуры, количество фигур, их цвет и текстура. Сетом называется тройка карт, у которых каждый признак либо у всех попарно отличается, либо совпадает. Рисунок ниже иллюстрирует возможные комбинации карт.
Полина придумала новый вариант игры и назвала его «Hyperset». В этой игре есть $$$n$$$ карт, обладающих $$$k$$$ признаками, каждый из которых принимает значение «S», «E» или «T». Оригинальная игра «Set» может быть рассмотрена как «Hyperset» с $$$k = 4$$$.
Так же, как и раньше, в этой игре сетом все еще называется тройка карт, у которых каждый признак либо попарно отличается, либо совпадает. Цель игры очень проста: нужно найти количество способов выбрать три карты, образующие сет.
К сожалению, зимние каникулы подошли к концу, и Полине уже надо идти в школу. Помогите Полине найти количество сетов среди карт, лежащих на столе.
Первая строка входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 1500$$$, $$$1 \le k \le 30$$$) — количество карт и количество признаков соответственно.
В каждой из следующих $$$n$$$ строк содержится описание карт. Описание карты представляет собой строку, состоящую из $$$k$$$ букв «S», «E», «T». Символ на позиции $$$i$$$ описывает $$$i$$$-й признак этой карты. Все карты различны.
Выведите единственное число — количество способов выбрать три карты, образующих сет.
3 3 SET ETS TSE
1
3 4 SETE ETSE TSES
0
5 4 SETT TEST EEET ESTE STES
2
В третьем примере сетами являются следующие тройки карт:
Название |
---|