PivotOJ

Parametriziran

시간 제한: 3000ms메모리 제한: 512MB출처: COCI 2018-2019BOJ 17050

문제

A string of characters consisting of lowercase letters of the English alphabet and question marks is called a parameterized word (e.g., a??cd, bcd, ??). Two parameterized words are considered similar if the question mark symbols in both words can be replaced by arbitrary lowercase letters of the english alphabet so that the resulting strings are the same. For example, parameterized words a??? and ?b?a are similar because by replacing the question marks in both words it is possible to obtain the word abba.

Mirko has recently bought a collection of parametrized words. Among the N words found in the collection, Mirko is interested in how many pairs of similar parameterized words exist. All the words in the collection have the same number of characters, M, and it is possible that a word occurs multiple times in the collection.

입력

The first line contains the integer numbers N (1 ≤ N ≤ 50 000) and M (1 ≤ M ≤ 6).

Each of the following N lines contains one parameterized word from the collection with exactly M characters.

출력

Print the total number of similar pairs of parameterized words.

예제

예제 1

입력
3 3
??b
c??
c?c
출력
2

예제 2

입력
4 6
ab??c?
??kll?
a?k??c
?bcd??
출력
3

예제 3

입력
5 2
??
b?
c?
?g
cg
출력
8
코드를 제출하려면 로그인하세요.