#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 20;
int N, ar[maxn];
set<int> ans, m;
int main() {
  cin >> N;
  for (int i = 1; i <= N; i++) {
    scanf("%d", &ar[i]);
    vector<int> v;
    while (!m.empty()) {
      v.push_back(*m.begin());
      ans.insert(v[v.size() - 1]);
      m.erase(m.begin());
    }
    m.insert(ar[i]);
    for (int j = 0; j < v.size(); j++) m.insert(ar[i] | v[j]);
  }
  while (!m.empty()) {
    ans.insert(*m.begin());
    m.erase(m.begin());
  }
  cout << ans.size();
  return 0;
}
