소 유전체 분석 (Silver)

점박이 소와 민무늬 소가 같은 세 문자를 갖지 않는 유전체 위치 세 곳의 조합 수를 센다.

보통4완전 탐색해시맵문자열조합론면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

농부 존에게는 점박이 소 NN마리와 점이 없는 소 NN마리가 있다. 얼마 전 소 유전학 강의를 마친 존은 소의 점이 소 유전체의 돌연변이 때문에 생긴다고 확신한다.

존은 큰 비용을 들여 소들의 유전체를 해독했다. 각 유전체는 A, C, G, T 네 문자로 이루어진 길이 MM의 문자열이다. 소들의 유전체를 나란히 늘어놓으면 다음과 같은 표가 된다. 아래는 N=3N=3인 경우이다.

Positions:    1 2 3 4 5 6 7 ... M

Spotty Cow 1: A A T C C C A ... T
Spotty Cow 2: G A T T G C A ... A
Spotty Cow 3: G G T C G C A ... A

Plain Cow 1:  A C T C C C A ... G
Plain Cow 2:  A G T T G C A ... T
Plain Cow 3:  A G T T C C A ... T

이 표를 자세히 보면 위치 2와 위치 4만으로 점박이 여부를 설명할 수 있다. 즉 이 두 위치의 문자만 보고도 어느 소가 점박이이고 어느 소가 아닌지 예측할 수 있다. 예를 들어 G와 C가 보이면 그 소는 반드시 점박이이다.

존은 점박이 여부가 유전체의 위치 한두 개가 아니라 서로 다른 세 위치의 집합으로 설명된다고 확신한다. 점박이 여부를 설명할 수 있는 서로 다른 세 위치의 집합이 몇 개인지 세어 존을 도와주자.

입력

첫째 줄에 NN (1N5001 \le N \le 500)과 MM (3M503 \le M \le 50)이 주어진다. 다음 NN개의 줄에는 각각 길이 MM의 문자열이 주어지며, 점박이 소들의 유전체를 나타낸다. 마지막 NN개의 줄은 점이 없는 소들의 유전체를 나타낸다. 모든 문자열은 A, C, G, T로만 이루어져 있다.

출력

점박이 여부를 설명할 수 있는 서로 다른 세 위치의 집합의 개수를 출력한다. 세 위치의 집합이 점박이 여부를 설명한다는 것은 유전체에서 그 세 위치만 보고도 존의 소 전체에 대해 점박이 여부를 완벽하게 예측할 수 있다는 뜻이다. 다시 말해 어떤 점박이 소와 어떤 점이 없는 소를 골라도 세 위치의 문자가 모두 같은 경우가 없어야 한다.