#include <bits/stdc++.h>
using namespace std;
const int lg = 24, mx = 1 << lg;
short cnt[mx];
int dp[mx][3];
string c;
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  int n;
  cin >> n;
  for (int t = 0; t < n; ++t) {
    cin >> c;
    sort(c.begin(), c.end());
    c.erase(unique(c.begin(), c.end()), c.end());
    for (int i = 0, sz = c.size(); i < sz; ++i) {
      ++cnt[1 << (c[i] - 'a')];
      for (int j = i + 1; j < sz; ++j) {
        ++cnt[1 << (c[i] - 'a') | 1 << (c[j] - 'a')];
        int k = j + 1;
        if (k < sz)
          ++cnt[1 << (c[i] - 'a') | 1 << (c[j] - 'a') | 1 << (c[k] - 'a')];
      }
    }
  }
  int ans = 0;
  for (int m = 1; m < mx; ++m) {
    int l1 = m & -m, l2 = (m ^ l1) & -(m ^ l1),
        l3 = (m ^ l1 ^ l2) & -(m ^ l1 ^ l2);
    dp[m][0] = dp[m ^ l1][0] + cnt[l1];
    if (l2)
      dp[m][1] =
          dp[m ^ l1][1] + dp[m ^ l2][1] - dp[m ^ l1 ^ l2][1] + cnt[l1 | l2];
    if (l3)
      dp[m][2] = dp[m ^ l1][2] + dp[m ^ l2][2] + dp[m ^ l3][2] -
                 dp[m ^ l1 ^ l2][2] - dp[m ^ l1 ^ l3][2] - dp[m ^ l2 ^ l3][2] +
                 dp[m ^ l1 ^ l2 ^ l3][2] + cnt[l1 | l2 | l3];
    int t = dp[m][0] - dp[m][1] + dp[m][2];
    ans ^= t * t;
  }
  cout << ans << "\n";
  return 0;
}
