#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef long long int ll; //#include using namespace std; ll gcd(ll a, ll b) { if (a < b)swap(a, b); if (b == 0)return a; return gcd(b, a % b); } int lcm(int a, int b) { return a * b / gcd(a, b); } int main() { int Q; Q = 1; //cin >> Q; while (Q--) { int n; cin >> n; vectorp(n); for (int i = 0; i < n; i++)cin >> p[i]; vectorr; r.push_back(0); sets; s.insert(0); for (ll i = 0; i < n; i++) { // cout << i << " "; for (ll j = 0; j < r.size(); j++) { ll x = r[j] ^ p[i]; //cout << x; auto t=s.find(x); if (t== s.end()) { r.push_back(x); s.insert(x); } } //cout << endl; } cout << s.size(); } return 0; }