#include <bits/stdc++.h>
using namespace std;
vector<long long> tmp;
long long cal(long long sz, long long on, long long n) {
  long long res =
      (sz - (lower_bound(tmp.begin(), tmp.end(), on - n) - tmp.begin()));
  res -= (sz - (lower_bound(tmp.begin(), tmp.end(), 2 * on - n) - tmp.begin()));
  res +=
      (sz - (lower_bound(tmp.begin(), tmp.end(), (3 * on) - n) - tmp.begin()));
  return res;
}
int main() {
  long long n, i, j, k;
  cin >> n;
  vector<long long> v(n);
  for (i = 0; i < n; i++) cin >> v[i];
  long long ans = 0;
  for (i = 0; i < 32; i++) {
    tmp.clear();
    for (j = 0; j < n; j++) tmp.push_back(v[j] % (1LL << (i + 1)));
    long long on = (1LL << i);
    sort(tmp.begin(), tmp.end());
    long long tot = 0;
    for (k = 0; k < n; k++) {
      tot += cal(n, on, tmp[k]);
    }
    for (k = 0; k < n; k++)
      if ((2 * tmp[k]) & on) tot--;
    tot /= 2;
    if (tot % 2) ans += on;
  }
  cout << ans << endl;
  return 0;
}
