#include <bits/stdc++.h>
#define LL long long
#define PII pair<int,int>
#define mp make_pair
#define fi first
#define se second
using namespace std;
int n,s[39],ps[39];
vector<int> V[39];
map<int,int> M[39];
LL ans=0;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&s[i]);
	ps[0]=0;
	for(int i=1;i<=n;i++) ps[i]=ps[i-1]+s[i];
	//mid = n/2+1
	V[0].push_back(0);
	for(int i=1;i<=n/2;i++){
		for(int j=0;j<i;j++){
			for(int k=0;k<V[j].size();k++){
				V[i].push_back(V[j][k]^(ps[i]-ps[j]));
			}
		}
	}
	V[n+1].push_back(0);
	M[n+1][0]=1;
	for(int i=n;i>=n/2+2;i--){
		for(int j=n+1;j>i;j--){
			for(int k=0;k<V[j].size();k++){
				V[i].push_back(V[j][k]^(ps[j-1]-ps[i-1]));
			}
		}
		for(int j=0;j<V[i].size();j++){
			if(M[i].count(V[i][j])) M[i][V[i][j]]++;
			else M[i][V[i][j]]=1;
		}
	}
	for(int i=1;i<=n/2+1;i++){
		for(int j=n/2+1;j<=n;j++){
			for(int k=0;k<V[i-1].size();k++){
				int cur=V[i-1][k]^(ps[j]-ps[i-1]);
				if(M[j+1].count(cur)) ans+=M[j+1][cur];
			}
		}
	}
	printf("%lld\n",ans);
	return 0;
}