#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long int INFLL = 0x3f3f3f3f3f3f3f3f;
const int MOD = 1e9 + 7;
const double EPS = 1e-9;
const double PI = acos(-1);
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int rand(int x, int y) { return uniform_int_distribution<int>(x, y)(rng); }
const int NMAX = 1e4 + 10;
const int LOG = 24;
int n;
int dp[1 << LOG];
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> n;
  for (int i = 0; i < n; i++) {
    string str;
    cin >> str;
    int ai =
        (1 << (str[0] - 'a')) | (1 << (str[1] - 'a')) | (1 << (str[2] - 'a'));
    for (int msk = ai; msk; msk = (msk - 1) & ai) {
      dp[msk] += __builtin_popcount(msk) % 2 ? +1 : -1;
    }
  }
  for (int i = 0; i < LOG; i++)
    for (int msk = 0; msk < (1 << LOG); msk++) {
      if (msk & (1 << i)) dp[msk] += dp[msk ^ (1 << i)];
    }
  long long int ans = 0;
  for (int i = 0; i < (1 << LOG); i++) {
    ans ^= 1ll * dp[i] * dp[i];
  }
  cout << ans << '\n';
}
