#include<bits/stdc++.h>
using namespace std;
const int N = 3e4+10,md=1e7+7,B=131,M = 210;
int n,l,s,h[N][M],ans;
string s1;
map<int,int> mp[M];
int main(){
queue<pair<int,int> > q;
cin>>n>>l>>s;
for(int i=1;i<=n;i++){
cin>>s1;
for(int j=1;j<=l;j++){
h[i][j]=(h[i][j-1]*B+int(s1[j-1]))%md;
}
for(int j=1;j<l;j++){
int dc=h[i][j-1]+h[i][l]-h[i][j+1]*pow(B,l-j-1);
mp[j][dc]++;
if(mp[j][dc]==2){
q.push(make_pair(j,dc));
}
}
int dc=h[i][l];
mp[l][dc]++;
if(mp[l][dc]==2){
q.push(make_pair(l,dc));
}
}
while(!q.empty()){
int x=q.front().first,y=q.front().second;
q.pop();
ans=ans+mp[x][y]*(mp[x][y]-1)/2;
}
cout<<ans<<endl;
return 0;
}