from sys import stdin def solve(): def p(n, k): if k > n: return 0 return (fact[n] * factinv[n - k]) % mod def c(n, k): if k > n: return 0 return (p(n, k) * factinv[k]) % mod def h(n, k): if n == 0 and k == 0: return 1 return c(n + k - 1, k) mod = 10**9 + 7 lim = 2 * 10**6 fact = [1] * (lim + 1) for i in range(2, lim + 1): fact[i] = (i * fact[i - 1]) % mod factinv = [1] * (lim + 1) factinv[lim] = pow(fact[lim], mod - 2, mod) for i in range(lim - 1, 0, -1): factinv[i] = ((i + 1) * factinv[i + 1]) % mod T = int(stdin.readline()) for tc in range(T): s = stdin.readline().strip() n, k = map(int, s[2:-1].split(',')) if s[0] == 'P': ans = p(n, k) elif s[0] == 'C': ans = c(n, k) else: ans = h(n, k) print(ans) if __name__ == '__main__': solve()