def bisect(nm, a): ok = 0; ng = 10**10 while abs(ok - ng) > 1: mid = (ok + ng) // 2 if nm - a*mid >= 0: ok = mid else : ng = mid return ok ########################################################################## T = int(input()) for _ in range(T): N, M = map(int,input().split()) k = bisect(N, 4) m = N - 4*k if M <= 4*k: if m > 0: print(k+1) else : print(k) else: M -= 4*k M -= (8-m) k += 1 l = bisect(M, 8) m = M - 8*l if m > 0: print(k+l+1) else : print(k+l)