write a go solution for Description: You are given an array a_1,a_2,...,a_n of integer numbers. Your task is to divide the array into the maximum number of segments in such a way that: - each element is contained in exactly one segment; - each segment contains at least one element; - there doesn't exist a non-empty subset of segments such that bitwise XOR of the numbers from them is equal to 0. Print the maximum number of segments the array can be divided into. Print -1 if no suitable division exists. Input Format: The first line contains a single integer n (1<=n<=2*10^5) — the size of the array. The second line contains n integers a_1,a_2,...,a_n (0<=a_i<=10^9). Output Format: Print the maximum number of segments the array can be divided into while following the given constraints. Print -1 if no suitable division exists. Note: In the first example 2 is the maximum number. If you divide the array into [5],[5,7,2], the XOR value of the subset of only the second segment is 5oplus7oplus2=0. [5,5],[7,2] has the value of the subset of only the first segment being 5oplus5=0. However, [5,5,7],[2] will lead to subsets [5,5,7] of XOR 7, [2] of XOR 2 and [5,5,7],[2] of XOR 5oplus5oplus7oplus2=5. Let's take a look at some division on 3 segments — [5],[5,7],[2]. It will produce subsets: - [5], XOR 5; - [5,7], XOR 2; - [5],[5,7], XOR 7; - [2], XOR 2; - [5],[2], XOR 7; - [5,7],[2], XOR 0; - [5],[5,7],[2], XOR 5; As you can see, subset [5,7],[2] has its XOR equal to 0, which is unacceptable. You can check that for other divisions of size 3 or 4, non-empty subset with 0 XOR always exists. The second example has no suitable divisions. The third example array can be divided into [3],[1],[10]. No subset of these segments has its XOR equal to 0.. Output only the code with no comments, explanation, or additional text.