#include #include using namespace std; const int VAL = 5005; const int RANGE = (1 << 14) + 5; int nVal, val[VAL]; void read() { cin >> nVal; for (int i = 0; i < nVal; ++i) cin >> val[i]; } void work() { bool avail[RANGE] = {}; avail[0] = true; for (int i = 0; i < RANGE; ++i) { if (!avail[i]) continue; for (int j = 0; j < nVal; ++j) avail[i ^ val[j]] = true; } cout << accumulate(avail, avail + RANGE, 0) << endl; } int main() { read(); work(); return 0; }