#include <bits/stdc++.h>
const long double PI(acosl(-1.0));
long double eps = 1e-9;
using namespace std;
const int N = 2 * 1e5;
vector<set<int>> bitSt(23);
set<int> st;
int a[N];
int m = 20;
int find(int x) {
  int zn = (int)(1e9 + 7);
  for (int j(0); j < m; j++) {
    int y = 1 << j;
    if ((x & y) != 0) continue;
    if (bitSt[j].size() == 0) continue;
    zn = min(zn, *bitSt[j].begin());
  }
  if (zn == (int)(1e9 + 7)) return -1;
  return zn;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  srand(unsigned(time(NULL)));
  int n;
  cin >> n;
  for (int i(0); i < n; i++) {
    int x;
    cin >> x;
    st.insert(x);
    for (int j(0); j < m; j++) {
      int y = 1 << j;
      if ((x & y) == 0) continue;
      bitSt[j].insert(i);
    }
    a[i] = x;
  }
  for (int i(0); i < n; i++) {
    int z = a[i];
    int pz = find(z);
    while (pz != -1) {
      z = z | a[pz];
      st.insert(z);
      pz = find(z);
    }
    int x = a[i];
    for (int j(0); j < m; j++) {
      int y = 1 << j;
      if ((x & y) == 0) continue;
      bitSt[j].erase(i);
    }
  }
  cout << st.size();
}
