self.children = [None] * 2
if cur == None or i == -1: return 0
if bit == 0 and mbit == 0:
return (cur.children[1].cnt if cur.children[1] else 0) + solve(num, i - 1, cur.children[0])
if bit == 1 and mbit == 0:
return (cur.children[0].cnt if cur.children[0] else 0) + solve(num, i - 1, cur.children[1])
if bit == 0 and mbit == 1:
return solve(num, i - 1, cur.children[1])
if bit == 1 and mbit == 1:
return solve(num, i - 1, cur.children[0])
def preprocess(nums, root):
for i in range(16, -1, -1):
cur.children[bit].cnt += 1
cur.children[bit] = TreeNode()
n, m = map(int, input().split())
nums = list(map(int, input().split()))
ans += solve(num, 16, root)