// #pragma GCC optimize ("Ofast") // #pragma GCC optimize ("unroll-loops") // #pragma GCC target ("avx,avx2,fma") #include #define rep(i, a, b) for(int i = (a); i <= (b); i ++) using std::cin, std::cout, std::cerr; using ll = long long; int main() { std::ios::sync_with_stdio(false); int n; cin >> n; std::vector basis; while(n --) { ll x; cin >> x; for(ll b : basis) { if((x ^ b) < x) x ^= b; } for(ll &b : basis) { if((b ^ x) < b) b ^= x; } if(x != 0) basis.push_back(x); } cout << (1LL << basis.size()) << '\n'; }