/*بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<ll> vll;
typedef pair<int, int> pii;
#define pb push_back
#define pp pop_back
//#define endl "\n"
#define mpp make_pair
#define fi first
#define se second
#define all(v) v.begin(), v.end()
#define sz(x) ((ll)(x).size())
#define vecpri(vec) for(auto i:vec) cout<<i<<' ';
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define ali cout<<"Alice\n"
#define bob cout<<"Bob\n"
#define forr(i,a,b) for (int i = (a); i < (b); i++)
#define rep(i,n) forr(i, 0, n)
#define pri(n) rep(i,n) cout<<b[i]<<' ';
#define geta(n) rep(i,n) cin>>a[i];
#define gcd __gcd
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int N = 1e6+9;
const ll inf = 1e18;
const ll mod = 1e9+7;
set<ll>st;
ll n,c,k,p,m,q,h,ans,cnt=0,mx; string s[N];ll dp[351][351][351];
void solve() {
cin>>n>>k;
map<string,ll>mp;
for(int i=0;i<n;i++){
cin>>s[i];mp[s[i]]++;
}
ll sum=0;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
string x="";
for(int kk=0;kk<k;kk++){
if(s[i][kk]==s[j][kk]) x+=s[i][kk];
else x+=(char)150-s[i][kk]-s[j][kk];
}
if(mp.count(x)){
sum+=mp[x];
}
}
}
cout<<sum/3<<'\n';
}
int main() {
fast;
ll t=1;//cin>>t;
while (t--)solve();
return 0;
}