#include using namespace std; const int logmax = 19; const int nmax = 524288; int v[nmax + 1]; bool f[nmax + 1]; bool d[logmax + 1][nmax + 1]; int main() { int n; cin >> n; for (int i = 1; i <= n; ++ i) { cin >> v[ i ]; f[ v[ i ] ] = 1; } for (int b = 0; b < logmax; ++ b) { for (int i = 1; i < nmax; ++ i) { if ((i & (1 << b)) == 0) continue; for (int j = 0; j < logmax && (1 << j) <= i; ++ j) { if (b == j) continue; if (i & (1 << j)) d[ b ][ i ] |= (d[ b ][i - (1 << j)] | f[i - (1 << j)]); } } } int ans = n; for (int i = 1; i <= n; ++ i) { bool ok = 1; for (int j = 0; (1 << j) <= v[ i ]; ++ j) { if (v[ i ] & (1 << j)) { ok &= d[ j ][ v[ i ] ]; } } if (ok == 1) { -- ans; } } cout << ans << "\n"; return 0; }