#include<bits/stdc++.h>

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;
}