mod = 10 ** 9 + 7 #順列 class Permutation: #前計算 def __init__(self, n): self.n = n self.fact = [1] * (self.n + 1) self.fact_inv = [1] * (self.n + 1) for i in range(1, self.n + 1): self.fact[i] = self.fact[i - 1] * i % mod self.fact_inv[-1] = invmod(self.fact[-1], mod) for i in range(self.n, 0, -1): self.fact_inv[i - 1] = self.fact_inv[i] * i % mod def perm(self, n, r): if n < r:return 0 if n < 0 or r < 0:return 0 return self.fact[n] * self.fact_inv[n - r] % mod #拡張ユークリッドの互除法 def extgcd(a, b, d = 0): g = a if b == 0: x, y = 1, 0 else: x, y, g = extgcd(b, a % b) x, y = y, x - a // b * y return x, y, g #mod pにおける逆元 def invmod(a, p): x, y, g = extgcd(a, p) x %= p return x hwmax = 4 * 10 ** 5 P = Permutation(hwmax) t = int(input()) for _ in range(t): h, w = map(int, input().split()) if h == 1 or w == 1: print(0) continue print(2 * P.perm(h + w - 3, h - 1) % mod * P.fact_inv[h - 2] % mod)