import sys def f(n: int) -> int: res = 0 a = 1 while n != 1: res += a * (n // 2) n -= n // 2 a <<= 1 return res def h(n: int, m: int) -> int: if n == 1: return 0 L = m R = m + n - 1 d = 60 while ((L >> d) & 1) == ((R >> d) & 1): d -= 1 mask = (1 << (d + 1)) - 1 L &= mask R &= mask l = (1 << d) - L r = (R + 1 - (1 << d)) ans = f(r) + f(l) ans += (1 << d) d -= 1 while d >= 0: if l + r > (2 << d): break if l > (1 << d): l -= (1 << d) elif r > (1 << d): r -= (1 << d) else: ans += (1 << d) d -= 1 return ans def main() -> None: data = list(map(int, sys.stdin.buffer.read().split())) t = data[0] idx = 1 out = [] for _ in range(t): n = data[idx] m = data[idx + 1] idx += 2 out.append(str(h(n, m))) sys.stdout.write("\n".join(out)) if __name__ == "__main__": main()