package main
import (
"fmt"
"sort"
"bufio"
"os"
)
func max(a []int) int {
m := a[0]
for _, i := range a {
if i > m {
m = i
}
}
return m
}
func map_max(m map[int]int) int {
mx, mi := -1, 0
for i, j := range m {
if j > mx {
mi, mx = i, j
}
}
return mi
}
func fmap(a []int) map[int]int {
m := map[int]int{}
for _, v := range a {
m[v] = count(a, v)
}
return m
}
func count(a []int, n int) int {
var c int = 0
for _, i := range a {
if i == n {
c++
}
}
return c
}
func main() {
var t, n, x int
in:=bufio.NewReader(os.Stdin)
fmt.Fscan(in,&t)
for t != 0 {
fmt.Fscan(in,&n,&x)
var a = make([]int, n)
//fmt.Scanf("%d", &a[0])
for i, _ := range a {
fmt.Fscan(in,&a[i])
}
//fmt.Println(max(a))
sort.Ints(a)
var am = fmap(a)
var maxi, ans = map_max(am), 0
if x!=0{
for _, i := range a {
if i != maxi && i^x == maxi {
ans++
}
}
}
fmt.Println(am[maxi]+ans, ans)
t--
}
}