#include using namespace std; const int MAXN = 1e6 + 10; int n, a[MAXN]; int main(){ scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &a[i]); int ans = 0; for (int w = 18; ~w; w--){ int ind = -1; for (int i = ans; i < n; i++) if (a[i] >> w & 1) ind = i; if (~ind){ swap(a[ans++], a[ind]); for (int i = ans; i < n; i++) if (a[i]>>w&1) a[i] ^= a[ans]; } } cout << ans << "\n"; return 0; }