#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e6 + 6;
char buf[MAX];
int app[26];
int n;
int main() {
  scanf("%d", &n);
  map<int, int> cnt;
  long long ans = 0;
  for (int i = int(0); i < int(n); i++) {
    scanf("%s", buf);
    int len = strlen(buf);
    memset(app, 0, sizeof app);
    for (int j = int(0); j < int(len); j++) {
      app[buf[j] - 'a']++;
    }
    int mask = 0;
    for (int j = int(0); j < int(26); j++) {
      if (app[j] & 1) {
        mask |= (1 << j);
      }
    }
    if (cnt.count(mask)) {
      ans += cnt[mask];
    }
    for (int j = int(0); j < int(26); j++) {
      int new_mask = mask ^ (1 << j);
      if (cnt.count(new_mask)) {
        ans += cnt[new_mask];
      }
    }
    cnt[mask]++;
  }
  printf("%lld\n", ans);
  return 0;
}
