4 3 64
Fax
fax
max
mac
4
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
typedef long long ll;
const int maxn=5e4+5;
const int INF=0x3f3f3f3f;
ll n,l,num,has[maxn],p[maxn],tmp[maxn],cnt,ans;
string s[maxn];
int main(){
cin>>n>>l>>num;
for(int i=1;i<=n;i++){
cin>>s[i];
has[i]=1;
for(int j=1;j<=l;j++){
has[i]=has[i]*12289+s[i][j-1]; //p^l+s1*p^l-1....+sl 多了的p^l都相等
}
}
p[0]=1;
for(int i=1;i<=l;i++){
p[i]=p[i-1]*12289;
}
for(int i=1;i<=l;i++){
for(int j=1;j<=n;j++){
tmp[j]=has[j]-s[j][i-1]*p[l-i];
}
sort(tmp+1,tmp+n+1);
cnt=1;
for(int j=2;j<=n;j++){
if(tmp[j]==tmp[j-1])
cnt++;
else{
ans+=(cnt-1)*cnt/2;
cnt=1;
}
}
ans+=(cnt-1)*cnt/2; //最后3个都相等
}
cout<<ans<<endl;
return 0;
}