#define maxn 32
int n;
typedef unsigned long long ull;
ull a[maxn],ans,pre[maxn],last;
unordered_map<int,int>lo;
inline int lowbit(int x)
{
return x&-x;
}
inline ull func(int x)
{
ull ans=0;
int p=lo[lowbit(x)];
ans=last^pre[p];
last=ans;
return ans;
}
int main()
{
n=fead();fer(i,1,n)scanf("%llu",&a[i]),pre[i]=a[i];
fer(i,1,n)pre[i]^=pre[i-1];
int kk=1;
fer(i,1,n)
{
lo.insert({kk,i});
kk<<=1;
}
int m=pow(2,n)-1;
for(int i=1;i<=m;i++)
{
ans^=i*func(i);
}
cout<<ans;
}
还有今天比赛真的心态炸了