#include <bits/stdc++.h>
using namespace std;
int Power(int a, int b) {
  if (b == 0) return 1;
  if (b & 1) return a * Power(a, b - 1);
  int t = Power(a, b / 2);
  return t * t;
}
int GCD(int a, int b) {
  if (b == 0) return a;
  return GCD(b, a % b);
}
void solve() {
  long long n;
  cin >> n;
  map<string, long long> Map;
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    long long Hash[26] = {0};
    for (int i = 0; i < s.length(); i++) Hash[s[i] - 'a']++;
    string temp = "";
    for (int i = 0; i < 26; i++) {
      Hash[i] %= 2;
      temp += '0' + Hash[i];
    }
    for (int i = 0; i < 26; i++) {
      if (temp[i] == '0') {
        temp[i] = '1';
        auto itr = Map.find(temp);
        if (itr != Map.end()) ans += itr->second;
        temp[i] = '0';
      } else {
        temp[i] = '0';
        auto itr = Map.find(temp);
        if (itr != Map.end()) ans += itr->second;
        temp[i] = '1';
      }
    }
    auto itr = Map.find(temp);
    if (itr != Map.end()) {
      ans += itr->second;
      itr->second++;
    } else
      Map.insert({temp, 1});
  }
  cout << ans;
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
  return 0;
}
