2600: 发奖金

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:1

题目描述

Bsny最近公司运作不佳,本年度利润才m元,但员工的奖金还是要发的,公司有n个员工,怎么发奖金这个完全由老板Bsny自己决定。Bsny想要么把这m元全发了,激励一下员工,但具体怎么分配方案有很多。比如m=1, n=2, 那么可以员工1发1元,员工2发0元;也可以员工1发0元,员工2发1元,有两种方案。 但其实,Bsny还是有点吝啬的,他想这m元不一定全部作为奖金,可以部分留给自己,这样的话,发奖金的方案数就更多了。还是以m=1, n=2为例子: 方案1:员工1发1元,员工2发0元 方案2:员工1发0元,员工2发1元 方案3:员工1发0元,员工2发0元 意味着老板Bsny发的奖金范围为[0, m]。 好奇的Bsny想知道,给定n和m,他有多少种发奖金的方案?这个答案很大,所以再给定一个p,最终的答案取模p的余数.

输入

第一行三个整数n, m, p

输出

仅一行,一个整数表示最终的答案取模p的余数。

样例输入 复制

2 1 5

样例输出 复制

3

提示

【数据规模】

  对于p:设p=p1^c1 * p2^c2 * p3^c3 * … *pt ^ ct,pi为质数。

20%的数据:1 ≤ n, m≤ 15; 40%的数据:1≤n, m≤1000,p=10007;

60%的数据:保证t=1,ci=1,pi^ci≤10^5;

80%的数据:t≤2,ci=1,pi≤10^5; 100%的数据:

1≤ n, m≤10^9,1≤pi^ci≤10^5,所有P不超过2^31-1。