#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<set>
#include<map>

using namespace std;

#define x first
#define y second
#define NMAX 2000005
#define INF 1000000007

int mymap[NMAX], n, v[NMAX], answer;

int main (){

    scanf("%d",&n);
    for(int i = 1; i <= n; i++) {
        scanf("%d",&v[i]);      
    }
    sort(v + 1, v + n + 1);
    
    vector<int> F;
    F.push_back(0);
    int nr = 1;
    
    for(int i = 1; i <= n; i++) {
        if(mymap[v[i]])
            continue;
        //printf("elem %d\n", v[i]);
        answer++;
        for(int j = 0; j < nr; j++){
            int val = (F[j] | v[i]);
            if(!mymap[val]){
                mymap[val] = 1;
                F.push_back(val);
                nr++;
                //printf("am adaugat %d\n", val);
            }
        }
    }
    
    printf("%d\n", answer);
    
    return 0;
}