local xor = bit.bxor local n, x = io.read("*n", "*n") local t = {} for i = 1, n do t[i] = io.read("*n") end local tmap = {} for i = 1, n do local v = t[i] if not tmap[v] then tmap[v] = 1 else tmap[v] = tmap[v] + 1 end end local ret = 0 if x == 0 then for k, v in pairs(tmap) do ret = ret + math.floor(v * (v - 1) / 2) end print(ret) else for i = 1, n do local dst = xor(x, t[i]) if tmap[dst] then ret = ret + tmap[dst] end end print(math.floor(ret / 2)) end