#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const *argv[])
{
int N, res = 0;
string pin;
map<string, int> pinovi;
vector<string> kljucevi, kracikljucevi;
map<string, pair<int, int>> kraci;
cin >> N;
int d;
cin >> d;
for (int i = 0; i < N; i++)
{
cin >> pin;
if (pinovi.find(pin) != pinovi.end())
{
pinovi[pin]++;
}
else
{
pinovi[pin] = 1;
kljucevi.push_back(pin);
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < kljucevi.size(); j++)
{
pin = kljucevi[j];
pin.erase(pin.begin() + i);
if (kraci.find(pin) != kraci.end())
{
kraci[pin].first += pinovi[kljucevi[j]];
kraci[pin].second += pinovi[kljucevi[j]] * (pinovi[kljucevi[j]] - 1);
}
else
{
kraci[pin].first = pinovi[kljucevi[j]];
kraci[pin].second = pinovi[kljucevi[j]] * (pinovi[kljucevi[j]] - 1);
kracikljucevi.push_back(pin);
}
}
for (int j = 0; j < kracikljucevi.size(); j++)
{
res += kraci[kracikljucevi[j]].first * (kraci[kracikljucevi[j]].first - 1) - kraci[kracikljucevi[j]].second;
kraci.erase(kracikljucevi[j]);
}
kracikljucevi.clear();
}
cout << res / 2;
return 0;
}