#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <map>
#include <algorithm>
using namespace std;
typedef long long ll;

const int N = 40;
ll a[N];
int n;
map<ll, ll> b;
ll ans = 0;


int main()
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%lld", &a[i]);
	if (n == 1)
	{
		printf("0\n");
		return 0;
	}
	int m = n / 2;
	for (int k = m; k <= n; k++)
	{
		b.clear();
		ll add = 0;
		for (int i = m; i < k; i++)
			add += a[i];
		for (int mask = 0; mask < (1 << (m - 1)); mask++)
		{
			ll val = 0;
			ll sum = 0;
			for (int i = 0; i < m - 1; i++)
			{
				sum += a[i];
				if (((mask >> i) & 1) == 0)
				{
					val ^= sum;
					sum = 0;
				}
			}
			sum += a[m - 1] + add;
			val ^= sum;
			b[val] += 1;
		}
		if (k == n)
		{
			ans += b[0];
			continue;
		}
		for (int mask = 0; mask < (1 << (n - k - 1)); mask++)
		{
			ll val = 0;
			ll sum = 0;
			for (int i = 0; i < n - k - 1; i++)
			{
				sum += a[k + i];
				if (((mask >> i) & 1) == 0)
				{
					val ^= sum;
					sum = 0;
				}
			}
			sum += a[n - 1];
			val ^= sum;
			ans += b[val];
		}
	}
	printf("%lld\n", ans);

	return 0;
}