#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
long long le[N], ri[N], mid, lee, rii;
long long a[N], b[N], c[N], mp[35], ans, n, answ, idx, idx1, pw[35], bb, mx,
    c1[N], cnt[10], mx1;
int main() {
  std::ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    mx1 = max(mx1, a[i]);
  }
  pw[0] = 1;
  for (int i = 1; i <= 35; i++) {
    pw[i] = pw[i - 1] * 2;
  }
  for (int i = 0; i <= 30; i++) {
    mx = 0;
    cnt[1] = cnt[0] = 0;
    for (int j = 1; j <= n; j++) {
      b[j] += a[j] & pw[i];
      if (a[j] & pw[i])
        cnt[1]++;
      else
        cnt[0]++;
    }
    cnt[1] += cnt[0];
    for (int j = n; j >= 1; j--) {
      if (a[j] & pw[i])
        c[cnt[1]] = a[j], cnt[1]--;
      else
        c[cnt[0]] = a[j], cnt[0]--;
    }
    for (int j = 1; j <= n; j++) {
      a[j] = c[j];
      c[j] &= (pw[i + 1] - 1);
    }
    idx = n;
    for (int j = 1; j <= n; j++) {
      idx = max(idx, j + 1LL);
      bb = 0;
      while (c[j] + c[idx] >= pw[i] && idx > j) {
        idx--;
        bb = 1;
      }
      if (bb == 1) idx++;
      if (c[j] + c[idx] < pw[i] || idx > n)
        le[j] = -1;
      else
        le[j] = idx;
    }
    idx = n;
    for (int j = 1; j <= n; j++) {
      idx = max(idx, j + 1LL);
      while (c[j] + c[idx] >= pw[i + 1] && idx > j + 1) {
        idx--;
      }
      if (c[j] + c[idx] >= pw[i + 1] || idx > n)
        ri[j] = -1;
      else
        ri[j] = idx;
    }
    for (int j = 1; j <= n; j++) {
      if (le[j] != -1 && ri[j] != -1) mp[i] += ri[j] - le[j] + 1;
    }
    idx = n;
    for (int j = 1; j <= n; j++) {
      idx = max(idx, j + 1LL);
      bb = 0;
      while (c[j] + c[idx] >= pw[i + 1] + pw[i] && idx > j) {
        bb = 1;
        idx--;
      }
      if (bb == 1) idx++;
      if (c[j] + c[idx] < pw[i + 1] + pw[i] || idx > n)
        le[j] = -1;
      else
        le[j] = idx;
    }
    idx = n;
    for (int j = 1; j <= n; j++) {
      idx = max(idx, j + 1LL);
      while (c[j] + c[idx] >= pw[i + 2] && idx > j + 1) {
        idx--;
      }
      if (c[j] + c[idx] >= pw[i + 2] || idx > n)
        ri[j] = -1;
      else
        ri[j] = idx;
    }
    for (int j = 1; j <= n; j++) {
      if (le[j] != -1 && ri[j] != -1) mp[i] += ri[j] - le[j] + 1;
    }
  }
  for (int i = 0; i <= 30; i++) {
    if (mp[i] % 2) answ += (1LL << i);
  }
  cout << answ << endl;
}
