#include<cstdio>
#include<algorithm>
using namespace std;
int a[5005],f[5005][5005],n,vis[5005][5005];
double slope(int x,int y) {return (a[x] - a[y]) * 1.0 / (x - y);}
int main()
{
scanf("%d",&n);
for (int i = 1; i <= n; i++) scanf("%d",&a[i]),f[i][i] = 1;
for (int i = 2; i <= n; i++)
{
double mn = 2147483647;
for (int j = i - 1; j >= 1; j--)
if (mn > slope(i,j)) mn = slope(i,j),vis[i][j] = 1;
}
for (int i = 2; i <= n; i++)
{
int pre = i;
for (int j = i - 1; j >= 1; j--)
if (vis[i][j]) pre = j,f[j][i] = f[pre + 1][i] + min(f[j][pre],f[j][pre - 1]);
else f[j][i] = f[pre + 1][i] + min(f[j][pre],f[j][pre - 1]);
}
int ans = 0;
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
ans = ans ^ f[i][j];
printf("%d\n",ans);
}