#include #include #include #include #include using namespace std; const int mod = 1e9 + 7; int calc_p(int n, int k) { if (n < k) { return 0; } long long ret = 1; for (int i = 0; i < k; i++) { ret = ret * (n - i) % mod; } return ret; } int calc_c(int n, int k) { if (n < k) { return 0; } k = min(k, n - k); vector factor; for (int i = 0; i < k; i++) { factor.emplace_back(n - i); } for (int i = k; i > 1; i--) { for (int j = factor.size() - 1; j >= 0; j--) { if (factor[j] % i == 0) { factor[j] /= i; break; } } } long long ret = 1; for (auto e : factor) { ret = ret * e % mod; } return ret; } int calc_h(int n, int k) { return calc_c(n - 1 + k, k); } int main() { int t, n, k, ans; char c; scanf("%d\n", &t); for (int i = 0; i < t; i++) { scanf("%c(%d,%d)\n", &c, &n, &k); switch (c) { case 'P': ans = calc_p(n, k); break; case 'C': ans = calc_c(n, k); break; case 'H': ans = calc_h(n, k); break; default: break; } // printf("%d: %d%c%d = %d\n", i, n, c, k, ans); printf("%d\n", ans); } return 0; }