#include <iostream>
using namespace std;
void swap(int a,int b) {
int t;
t=a,a=b,b=t;
}
int get(int x,int y) {
if(x==y) return x;
if(x>y) swap(x,y);
if(x==0 and y==1) return 2;
if(x==0 and y==2) return 1;
return 0;
}
int m[50001],m_[20],a[3002][23];
int n,k,x,ans;
main() {
m_[0]=1;
for(int i=1;i<=12;i++) m_[i]=m_[i-1]*3;
cin>>n>>k;
for(int i=1;i<=n;i++) {
cin>>x;
int t=0,now=0;
while(x) {
a[i][++t]=x%10-1;
now=now+a[i][t]*m_[t-1];
x/=10;
}
m[now]++;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j) {
int y=0;
for(int j1=1;j1<=k;j1++)
y=y+get(a[i][j1],a[j][j1])*m_[j1-1];
if(m[y]) ans++;
}
cout<<ans/6;
return 0;
}
0 pts,求助!