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