#include <bits/stdc++.h>
using namespace std;
template <typename _T>
inline void _DBG(const char *s, _T x) {
  cerr << s << " = " << x << "\n";
}
template <typename _T, typename... args>
void _DBG(const char *s, _T x, args... a) {
  while (*s != ',') cerr << *s++;
  cerr << " = " << x << ',';
  _DBG(s + 1, a...);
}
vector<int> A;
vector<int> modded;
int main() {
  int n;
  cin >> n;
  A.resize(n);
  modded.resize(n);
  for (int i = 0; i < n; i++) {
    cin >> A[i];
  }
  int res = 0;
  for (int i = 0; i < 27; i++) {
    for (int j = 0; j < n; j++) {
      modded[j] = A[j] % (1 << (i + 1));
    }
    sort((modded).begin(), (modded).end());
    int l, r, cnt = 0;
    for (int j = 0; j < n; j++) {
      auto beg = modded.begin() + j + 1;
      auto end = modded.end();
      l = lower_bound(beg, end, (1 << i) - modded[j]) - modded.begin();
      r = lower_bound(beg, end, (1 << (i + 1)) - modded[j]) - modded.begin();
      cnt += (r - l);
      l = lower_bound(beg, end, (1 << (i + 1)) + (1 << i) - modded[j]) -
          modded.begin();
      r = upper_bound(beg, end, (1 << (i + 2)) - 2 - modded[j]) -
          modded.begin();
      cnt += (r - l);
    }
    if (cnt & 1) {
      res |= (1 << i);
    }
  }
  cout << res << "\n";
  return 0;
}
