#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; }