#include <bits/stdc++.h>
void File_IO() {}
using namespace std;
int mask[27];
int has[100005];
map<int, int> mp;
int main() {
  File_IO();
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    string line;
    cin >> line;
    memset(mask, 0, sizeof(mask));
    for (int j = 0; j < line.size(); j++) {
      mask[line[j] - 'a']++;
    }
    for (int j = 0; j < 26; j++) {
      if (mask[j] & 1) has[i] += (1 << j);
    }
    mp[has[i]]++;
  }
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    ans += mp[has[i]] - 1;
    for (int j = 0; j < 26; j++) {
      if (mp.count(has[i] ^ (1 << j))) {
        ans += mp[(has[i] ^ (1 << j))];
      }
    }
  }
  cout << ans / 2 << endl;
}
