#524. 组合

组合

题目描述

给出组合数C(n,m))\red{ C(n,m)) }表示从n\red n个元素中选出m\red m 个元素的方案数。例如C(5,2)=10\red{ C(5,2) = 10},C(4,2)=6\red{ C(4,2) = 6}。可是当n,m\red{ n,m }比较大的时候,C(n,m)\red{C(n,m) }很大。于是xiaobo\red{ xiaobo }希望你输出C(n,m)modp\red{ C(n,m) \bmod p} 的值。

输入格式

输入数据第一行是一个正整数T\red T,表示数据组数;

接下来是T\red T 组数据,每组数据有3\red 3 个正整数 n,m,p\red{n,m,p}

输出格式

对于每组数据,输出一个正整数,表示C(n,m)modp\red{ C(n,m) \bmod p }的结果。

样例

输入样例

2
5 2 3
5 2 61

输出样例

1
10

数据范围与提示

对于所有数据,T100\red{T\le 100}1mn109\red{1\le m\le n\le 10^9}m104\red{m\le 10^4}m<p<109\red{m\lt p\lt 10^9}p\red p 是素数。