#include<bits/stdc++.h>

#define pb push_back
#define mp make_pair

using namespace std;

map<long long, long long> m[36];
vector<long long> v[36];
int a[36];
long long ans, t;
long long dsum;

int main()
{
	int N;
	cin >> N;
	for(int i = 0; i < N; i++)
		cin >> a[i];
	m[0][a[0]] = 1;
	v[0].pb(a[0]);
	for(int i = 1; i < N; i++)
	{
		dsum = 0;
		for(int j = i; j > 0; j--) 
		{
			dsum += a[j];
			for(int k = 0; k < v[j-1].size(); k++)
			{
				if(m[i][dsum ^ v[j-1][k]] == 0)
					v[i].pb(dsum ^ v[j-1][k]);
				m[i][dsum ^ v[j-1][k]] += m[j-1][v[j-1][k]];
			}
		}
		dsum += a[0];
		m[i][dsum]++;
		if(m[i][dsum] == 1)
			v[i].pb(dsum);
	}
	/*for(int i = 0; i < N; i++)
	{
		for(int j = 0; j < v[i].size(); j++)
			cout << "(" << v[i][j] << ", " << m[i][v[i][j]] << ") ";
		cout << endl;
	}*/
	
	cout << m[N-1][0] << endl;
}