Logo Universal Online Judge

UOJ

时间限制:3 s 空间限制:64 MB
统计

题目描述

我们规定一个包含小写字母和问号的字符串为一个参数化单词。例如,a??cdbcd?? 都属于参数化单词。

如果两个参数化单词中,可以用特定的小写字母将其中的问号进行替换,并最终使得两个单词完全相同,那么原来的两个参数化单词就被称为是相似的。例如,a????b?a 都可以替换为 abba,因此 a????b?a 是相似的。

给定 $N$ 个长度为 $M$ 的参数化单词,求有多少对相似的参数化单词。

输入格式

第一行输入整数 $N,M$。

接下来的 $N$ 行,每行输入一个长度为 $M$ 的参数化单词。

输出格式

输出相似的参数化单词的对数。

样例 #1

样例输入 #1

3 3
??b
c??
c?c

样例输出 #1

2

样例 #2

样例输入 #2

4 6
ab??c?
??kll?
a?k??c
?bcd??

样例输出 #2

3

样例 #3

样例输入 #3

5 2
??
b?
c?
?g
cg

样例输出 #3

8

提示

样例 1 解释

??bc?? 是相似的,而 c??c?c 也是相似的。因此共有 $2$ 对相似的参数化单词。

数据规模与约定

对于 $30\%$ 的数据,$M \le 2$。

对于另外 $30\%$ 的数据,$M \le 4$。

对于 $100\%$ 的数据,$1 \le N \le 5 \times 10^4$,$1 \le M \le 6$。