package main import ( "fmt" "bufio" "os" ) func main() { r := bufio.NewReader(os.Stdin) w := bufio.NewWriter(os.Stdout) defer w.Flush() var N, X int fmt.Fscan(r, &N, &X) a := make(map[int]int, N) for i := 0; i < N; i++ { var k int fmt.Fscan(r, &k) if v, ok := a[k]; ok { a[k] = v + 1 } else { a[k] = 1 } } cnt := 0 for k, v := range a { delete(a, k) x := k ^ X if x == k { cnt += v * (v - 1) / 2 continue } if vx, ok := a[x]; ok { delete(a, x) cnt += v * vx } } fmt.Fprintln(w, cnt) }