Set
시간 제한1초메모리 제한512 MB
길이 k이고 문자가 1, 2, 3인 서로 다른 문자열 n개가 주어질 때, 각 위치에서 세 문자가 모두 같거나 모두 다른 순서 없는 삼중항의 개수를 센다.
문제
인기 있는 카드 게임 SET에서 플레이어의 목표는 set이라는 특별한 성질을 가진 세 장의 카드 조합을 찾는 것이다. 각 카드에는 개수, 모양, 투명도, 색이 서로 다른 도형들이 그려져 있다.
Marin과 Josip은 최근 이 카드 한 벌을 샀고, 이제는 게임을 멈출 수가 없다. 둘은 set을 알아보는 데 너무 능숙해져서, 카드가 네 가지 성질로만 결정된다는 사실이 곧 지루해졌다. 그래서 게임의 일반화된 버전으로 재미를 보기로 했다.
두 사람에게는 n장의 서로 다른 카드가 있다. 각 카드는 1, 2, 3 중 하나인 문자 k개로 이루어진 수열로 표현된다. 카드의 순서는 중요하지 않다.
세 장의 카드로 이루어진 순서 없는 조합이 set이라는 것은, k개의 각 위치에서 세 카드에 대응하는 문자가 모두 같거나 서로 모두 다른 경우를 말한다. 예를 들어 1123, 1322, 1221로 표현되는 세 카드는 set을 이룬다. 첫 번째와 세 번째 위치의 문자는 각각 1, 2로 모두 같고, 두 번째와 네 번째 위치의 문자는 서로 다르기(1, 2, 3이 어떤 순서로든 나타남) 때문이다.
탁자 위의 이 n장의 카드를 보면서 두 사람은 궁금해졌다. 이 n장의 카드 중 set을 이루는 순서 없는 세 장의 조합은 몇 개나 될까? 이 질문에 답하는 프로그램을 작성하시오.
입력
첫 번째 줄에는 두 정수 n과 k가 주어진다. 각각 카드의 수와 한 카드의 성질 개수이다.
다음 n개의 줄에는 각각 카드를 나타내는 문자 k개로 이루어진 수열이 주어진다. 각 문자는 1, 2, 3 중 하나이다. 서로 다른 줄에는 서로 다른 수열이 주어진다.
출력
한 줄에 set을 이루는 순서 없는 세 장의 조합의 수를 출력한다.
제한
모든 부분문제에서 1 ≤ k ≤ 12이고 1 ≤ n ≤ 3k이다.
힌트
세 번째 예제에 대한 설명: 두 set은 111, 222, 333과 111, 123, 132이다.