#include <bits/stdc++.h>
using namespace std;
namespace std {
#ifndef LOCAL
#define cerr \
if (0) cerr
#endif
} // namespace std
int suff[100005];
int a[100005];
bool dd[1 << 20];
int n;
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
#ifdef LOCAL
#define task "a"
#else
#define task ""
#endif
if (fopen(task ".inp", "r")) {
freopen(task ".inp", "r", stdin);
freopen(task ".out", "w", stdout);
}
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = n; i >= 1; i--) suff[i] = suff[i + 1] | a[i];
for (int i = 1; i <= n; i++) {
int curr = 0;
for (int j = i; j <= n; j++) {
curr |= a[j];
dd[curr] = 1;
if ((curr | suff[j + 1]) == curr) {
break;
}
}
}
int ans = 0;
for (int i = 0; i < 1 << 20; i++) ans += dd[i];
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbmFtZXNwYWNlIHN0ZCB7CiNpZm5kZWYgTE9DQUwKI2RlZmluZSBjZXJyIFwKICBpZiAoMCkgY2VycgojZW5kaWYKfSAgLy8gbmFtZXNwYWNlIHN0ZAoKaW50IHN1ZmZbMTAwMDA1XTsKaW50IGFbMTAwMDA1XTsKYm9vbCBkZFsxIDw8IDIwXTsKaW50IG47CgppbnQzMl90IG1haW4oKSB7CiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICBjaW4udGllKDApOwojaWZkZWYgTE9DQUwKI2RlZmluZSB0YXNrICJhIgojZWxzZQojZGVmaW5lIHRhc2sgIiIKI2VuZGlmCiAgaWYgKGZvcGVuKHRhc2sgIi5pbnAiLCAiciIpKSB7CiAgICBmcmVvcGVuKHRhc2sgIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4odGFzayAiLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICB9CiAgY2luID4+IG47CiAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICBmb3IgKGludCBpID0gbjsgaSA+PSAxOyBpLS0pIHN1ZmZbaV0gPSBzdWZmW2kgKyAxXSB8IGFbaV07CiAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICBpbnQgY3VyciA9IDA7CiAgICBmb3IgKGludCBqID0gaTsgaiA8PSBuOyBqKyspIHsKICAgICAgY3VyciB8PSBhW2pdOwogICAgICBkZFtjdXJyXSA9IDE7CiAgICAgIGlmICgoY3VyciB8IHN1ZmZbaiArIDFdKSA9PSBjdXJyKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICB9CiAgaW50IGFucyA9IDA7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCAxIDw8IDIwOyBpKyspIGFucyArPSBkZFtpXTsKICBjb3V0IDw8IGFuczsKICByZXR1cm4gMDsKfQ==