#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
#include <deque>
#include <cstring>
#include <functional>
#include <climits>
#include <list>
#include <ctime>
#include <complex>
 
#define F1(x,y,z) for(int x=y;x<z;x++)
#define F2(x,y,z) for(int x=y;x<=z;x++)
#define F3(x,y,z) for(int x=y;x>z;x--)
#define F4(x,y,z) for(int x=y;x>=z;x--)
#define pb push_back
#define LL long long
#define co complex<double>
 
#define MAX 105
#define AMAX 16384
#define MOD 1000000007

#define f(c,d) ((1<<(c))*(d))

using namespace std;

int n,m,x[MAX],sx[MAX];
map<int,LL> y[MAX],z[MAX];
map<int,LL>::iterator it,ita;
LL ans;

int main(){
	scanf("%d",&n);
	F1(a,0,n)scanf("%d",&x[a]);
	F1(a,0,n)sx[a+1]=sx[a]+x[a];
	m=(n+1)/2;
	//printf("%d\n",m);
	y[0].insert(make_pair(0,1LL));
	F2(a,1,m)F1(b,0,a)for(it=y[b].begin();it!=y[b].end();++it){
		//printf(" %d\n",a);
		y[a][it->first^(sx[a]-sx[b])]+=it->second;
	}	
	z[n].insert(make_pair(0,1LL));
	F4(a,n-1,m)F3(b,n,a)for(it=z[b].begin();it!=z[b].end();++it){
		//printf("%d\n",a);
		z[a][it->first^(sx[b]-sx[a])]+=it->second;
	}
	F2(a,0,m)F2(b,m,n)if(!((a==m)^(b==m)))for(it=y[a].begin();it!=y[a].end();++it)for(ita=z[b].begin();ita!=z[b].end();++ita){
		//printf("%d %d %d %d\n",a,it->first,b,ita->first);
		if((it->first^ita->first^(sx[b]-sx[a]))==0){
			//printf("  %d %d %d %d %lld %lld  %d %d\n",a,it->first,b,ita->first,it->second,ita->second,sx[b]-sx[a],it->first^ita->first^(sx[b]-sx[a]));
			ans+=it->second*ita->second;
		}
	}
	printf("%lld\n",ans);
	//system("pause");
	return 0;
}