def bsearch(low: int, high: int, pred) -> int: assert pred(low) lo = low hi = high res = low while lo <= hi: m = (lo + hi) // 2 if pred(m): res = max(res, m) lo = m + 1 else: hi = m - 1 return res def solve(): def can(x: int) -> bool: a = N - 4 * x m = M + 4 * (a // 2) return a >= 0 and m >= 2 * x N, M = map(int, input().split()) res = bsearch(0, 10**9, can) return res * 3 T = int(input()) for _ in range(T): ans = solve() print(ans)