write a go solution for Description: Yarik's birthday is coming soon, and Mark decided to give him an array a of length n. Mark knows that Yarik loves bitwise operations very much, and he also has a favorite number x, so Mark wants to find the maximum number k such that it is possible to select pairs of numbers [l_1,r_1], [l_2,r_2], ldots [l_k,r_k], such that: - l_1=1. - r_k=n. - l_i<=r_i for all i from 1 to k. - r_i+1=l_i+1 for all i from 1 to k-1. - (a_l_1oplusa_l_1+1oplusldotsoplusa_r_1)|(a_l_2oplusa_l_2+1oplusldotsoplusa_r_2)|ldots|(a_l_koplusa_l_k+1oplusldotsoplusa_r_k)<=x, where oplus denotes the operation of bitwise XOR, and | denotes the operation of bitwise OR. If such k does not exist, then output -1. Input Format: Each test consists of multiple test cases. The first line contains a single integer t (1<=t<=10^4) — the number of test cases. The following lines contain the descriptions of the test cases. The first line of each test case contains two integers n and x (1<=n<=10^5,0<=x<2^30) — the length of the array a and the number x respectively. The second line of each test case contains n integers a_1,a_2,ldots,a_n (0<=a_i<2^30) — the array a itself. It is guaranteed that the sum of the values of n across all test cases does not exceed 10^5. Output Format: For each test case, output a single integer on a separate line — the maximum suitable number k, and -1 if such k does not exist. Note: In the first test case, you can take k equal to 2 and choose two segments [1,1] and [2,3], (1)|(2oplus3)=1. It can be shown that 2 is the maximum possible answer. In the second test case, the segments [1,1] and [2,2] are suitable, (1)|(1)=1. It is not possible to make more segments. In the third test case, it is not possible to choose 2 segments, as (1)|(3)=3>2, so the optimal answer is 1.. Output only the code with no comments, explanation, or additional text.