#include <iostream>

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;
}