#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,s,n) for(int i=(int)(s);i<(int)(n);i++) using namespace std; typedef long long int ll; typedef vector VI; typedef pair PI; const double EPS=1e-9; int n; ll a[1000010]; void swap(int i, int j) { ll t = a[i]; a[i] = a[j]; a[j] = t; } int main(void){ cin >> n; REP(i, 0, n) { cin >> a[i]; } int k = 0; int r = 0; while(k <= 60) { int r2 = r; while(r2 < n && (a[r2] & (1LL << k)) == 0) { ++r2; } if (r2 == n) { ++k; continue; } swap(r, r2); REP(i, r + 1, n) { if ((a[i] & (1LL << k)) != 0) { a[i] ^= a[r]; } } ++r; ++k; } cout << (1LL << r) << endl; }