【模板】组合数取模(逆元应用)
题号:NC226826
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

计算C(n,m)模p的值,p是素数

输入描述:

第一行两个整数T(1 <= T <= 10000) 和 p (2 <= p <= 2*10^9, p一定是素数),表示T组测试用例和要取模的素数。
接下来T行,每行两个数n和m(1 <= m <= n <= 10^5)

输出描述:

输出T行,每行一个整数,表示答案。
示例1

输入

复制
4 1000000007
4 2
4 4
4 1
100 50

输出

复制
6
1
4
538992043