#include <bits/stdc++.h>
using namespace std;
int seting(int N, int pos) { return N = N | (1 << pos); }
int reset(int N, int pos) { return N = N & ~(1 << pos); }
bool chek(int N, int pos) { return (bool)(N & (1 << pos)); }
int make(string str) {
  int i, tmp;
  tmp = 0;
  for (i = 0; i < 3; i++) {
    tmp = seting(tmp, str[i] - 'a');
  }
  return tmp;
}
int F[(1 << 24) + 3];
string ss;
int main() {
  int n, i, mask, res, tmp;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    cin >> ss;
    F[make(ss)]++;
  }
  for (i = 0; i < 24; i++) {
    for (mask = 0; mask < (1 << 24); mask++) {
      if (mask & (1 << i)) F[mask] += F[mask ^ (1 << i)];
    }
  }
  res = 0;
  tmp = (1 << 24) - 1;
  for (i = 0; i < (1 << 24); i++) {
    res ^= ((n - F[i ^ tmp]) * (n - F[i ^ tmp]));
  }
  cout << res << endl;
  return 0;
}
