#include <bits/stdc++.h>
using namespace std;
int fastMax(int x, int y) { return (((y - x) >> (32 - 1)) & (x ^ y)) ^ y; }
int fastMin(int x, int y) { return (((y - x) >> (32 - 1)) & (x ^ y)) ^ x; }
const long long int MAXN = (1LL << 24);
long long int dp[MAXN];
void solve() {
  long long int n;
  cin >> n;
  long long int t_mask = (1LL << 24) - 1;
  for (long long int i = (0); i <= (n - 1); ++i) {
    string second;
    cin >> second;
    long long int temp = 0;
    for (char x : second) {
      long long int z = (1 << (x - 'a'));
      temp |= z;
    }
    dp[temp]++;
  }
  for (long long int i = (0); i <= (23); ++i) {
    for (long long int j = (0); j <= (t_mask); ++j) {
      if (j & (1 << i)) dp[j] += dp[j ^ (1 << i)];
    }
  }
  long long int ans = 0;
  for (long long int i = (0); i <= (t_mask); ++i) {
    long long int z = (n - dp[i]) * (n - dp[i]);
    ans ^= z;
  }
  cout << ans << '\n';
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  long long int t;
  t = 1;
  for (long long int i = (1); i <= (t); ++i) {
    solve();
  }
}
