#include using namespace std; int Read() { static char c; int ret; for(c = getchar(); !isdigit(c); c = getchar()); for(ret = 0; isdigit(c); c = getchar()) ret = ret * 10 + c - '0'; return ret; } int main() { int n = Read(); vector DP1(1 << 20), DP2(1 << 20); while(n--) { int x = Read(); DP1[x] = x; } int ans = 0; for(int i = 0; i < (1 << 20); ++i) { if(DP1[i] == i) { // cerr << i << " "; if(DP2[i] != i) { ans += 1; DP2[i] = i; } } for(int j = 0; j < 20; ++j) { DP1[i | (1 << j)] |= DP1[i]; DP2[i | (1 << j)] |= DP2[i]; } } cout << ans << endl; return 0; }