#include <bits/stdc++.h>
long long ans;
int F[50000001], n, m, N;
char str[10001];
void dfs(int x, int bit, int key) {
  if (x > 3) {
    if (bit) F[bit] += key;
    return;
  }
  dfs(x + 1, bit, key);
  int v = str[x] - 'a';
  dfs(x + 1, bit | (1 << v), -key);
}
int main() {
  scanf("%d", &m);
  for (int i = 1; i <= m; i++) {
    scanf("%s", str + 1);
    dfs(1, 0, -1);
  }
  n = 24;
  N = 1 << n;
  int res = 0;
  for (int i = 0; i < N; i++) res += F[i];
  for (int i = 1; i < N; i <<= 1)
    for (int j = 0; j < N; j++)
      if (i & j) {
        F[j] += F[j - i];
      }
  for (int i = 0; i < N; i++) ans ^= (long long)F[i] * F[i];
  printf("%I64d\n", ans);
}
