当你想要更多的money
题号:NC231616
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在火星的伟大的nucx大学的一名副教授2f2,负责大四学生实习审核以及抽(hui)成(kou),众多名言的缔造者,今天刚刚以说话优雅为借口卡掉一位同学的审核。

于是,他心满意足的回到办公室,打算打开自己的银行卡,计算一下自己又可以从公司拿到多少抽(hui)成(kou)。

然而,他发现他密码被人修改了!修改者挑衅的留下密码规则,可是多年没有接触过代码的~~副~~教授显然不知道怎么写,于是把你叫来,命令你求出密码!否则,你就要读大六了!


n个长度均为m的字符串,我们定义

+ 修改第x个字符串中的第y个字符为任意字符。
+ 计算修改之后有多少个字符串与x字符串是相同的(不包括x本身),称其为sum
+ 将字符串恢复原样。

密码就是

输入描述:

第一行输入两个数n,m。表示字符串的个数与每个字符串的长度。

接下来n行输入n个长度为m的字符串。

其中2 n,m,并且

保证输入字符串均为小写字符。

输出描述:

输出一行数字,表示密码。
示例1

输入

复制
4 3
aaa
aaa
aaa
aaa

输出

复制
36
示例2

输入

复制
3 4
abcd
accd
abcc

输出

复制
4
示例3

输入

复制
3 4
abcd
aabc
abcd

输出

复制
8

说明

以样例2为例,(x,y,z,k)代表修改第x个字符串第y位为z,可以与第k个字符串匹配,则可行的方案为:

(1,2,'c',2),(1,4,'c',3),(2,2,'b',1),(3,4,'c',1)