#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;


int main(){
	
	cin.sync_with_stdio(false);
	int n;
	cin>>n;
	
	int * S = new int[n];
	
	for(int iii = 0; iii < n; iii++){
		
		cin>>S[iii];
		
	}
	
	sort(S, S + n);
	/*
	for(int iii = 0; iii < n; iii++){
		cout<<S[iii]<<endl;
	}*/
	
	//vector <int> S2;

	set <long long> sums;
	int j = 0;
	
	for(int iii = 0; iii < n; iii++){
		if(sums.find(S[iii]) == sums.end()){
			j++;
			set.insert(S[iii]);
			for(set<long long>::iterator it = sums.begin(); it != sums.end(); it++){
				set.insert(*it | S[iii]);
			}
		}
		
		
		
	}
	
	cout<<j<<endl;
	
}