You have an array of integers A1, A2, ..., AN. The function F(P), where P is a subset of A, is defined as the XOR (represented by the symbol ⊕) of all the integers present in the subset. If P is empty, then F(P)
Given an integer K, what is the maximum value of K ⊕ F(P), over all possible subsets P of A?

Input
The first line contains T, the number of test cases. Each test case consists of N and K in one line, followed by the array A in the next line.

Output
For each test case, print the required answer in one line.

Constraints

1 ≤ T ≤ 10
1 ≤ K, Ai ≤ 1000
Example
Input:
1
3 4
1 2 3

Output:
7


Explanation
Considering all subsets: F({}) = 0 ⇒ 4 ⊕ 0 = 4 F({1}) = 1 ⇒ 4 ⊕ 1 = 5 F({1,2}) = 3 ⇒ 4 ⊕ 3 = 7 F({1,3}) = 2 ⇒ 4 ⊕ 2 = 6 F({1,2,3}) = 0 ⇒ 4 ⊕ 0 = 4 F({2}) = 2 ⇒ 4 ⊕ 2 = 6 F({2,3}) = 1 ⇒ 4 ⊕ 1 = 5 F({3}) = 3 ⇒ 4 ⊕ 3 = 7 Therefore, the answer is 7.
def ContainsBit(mask, i):
  return mask & (1 << i) > 0

def GaussianElimination(values, n):
  values.sort(reverse=True)
  bit = max(i if ContainsBit(values[0], i) else 0 for i in xrange(11))
  start = 0
  for b in xrange(bit, -1, -1):
    j = -1
    for i in xrange(start, n):
      if ContainsBit(values[i], b):
        j = i
        break
    if j == -1:
      continue
    values[start], values[j] = values[j], values[start]
    for i in xrange(start+1, n):
      if ContainsBit(values[i], b):
        values[i] ^= values[start]
#    print values
    start += 1
    if start >= n:
      break
  return values
       
for _ in xrange(int(raw_input())):
  n, k = map(int, raw_input().split())
  values = map(int, raw_input().split())
  values = GaussianElimination(values, n)
  for v in values:
    k = max(k, k^v)
  print k