#include<bits/stdc++.h>
using namespace std;
#define int long long
#define F(i,k,n) for (int i=k;i<=n;i++)
#define db long double
const int N=13;
int pre[1<<N];
unordered_set<int>dp[1<<N];
int a[N];
int n;
unordered_set<int>::iterator it;
signed main(){
cin>>n;
F(i,0,n-1) cin>>a[i];
F(s,0,(1<<n)-1) F(i,0,n-1) if ((s>>i)&1) pre[s]+=a[i];
dp[(1<<n)-1].insert(0);
for (int s=(1<<n)-1;s>=0;s--){
for (int j=s;j>=0;j=(j-1)&s){
for (it=dp[s].begin();it!=dp[s].end();it++){
dp[s-j].insert((*it)^pre[j]);
}
if (!j) break;
}
}
cout<<dp[0].size();
return 0;
}