题目描述
我们规定一个包含小写字母和问号的字符串为一个参数化单词。例如,a??cd
,bcd
,??
都属于参数化单词。
如果两个参数化单词中,可以用特定的小写字母将其中的问号进行替换,并最终使得两个单词完全相同,那么原来的两个参数化单词就被称为是相似的。例如,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 解释
??b
和 c??
是相似的,而 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$。