#1073. 1-09E. 谁来救救jwp

内存限制:512 MiB 时间限制:750 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: lenijwp

题目描述

没有学过组合数学的jwp想自学一下,他随便拿出了一道题:有一个坐标网格,有一只青蛙,开始在 (0, 0)(0,\ 0) 点,它每次可以向右或者向上跳一步,问它跳到 (n, m)(n,\ m) 点有多少种方案。由于方案可能很大很大,jwp决定只求方案数对 pp 取模之后的模数(注意 pp 不一定是质数)。然而他发现,这个问题他还不会做,为了不打消他学习组合数学的积极性,zzy决定请你来帮他解决这个问题。

输入格式

第一行一个整数 TT ,表示数据组数。

接下来 TT 行,每行三个整数 n, m, pn,\ m,\ p

输出格式

输出 TT 行,每行一个整数表示答案。

样例

样例输入

1
2 3 100000

样例输出

10

数据范围与提示

1n, m10181 \le n,\ m \le 10^{18}

2p1062 \le p \le 10^6