calc
一个序列 a1,a2,…,an 是合法的,当且仅当:
- 长度为给定的 n;
- a1,a2,…,an 都是 [1,A] 中的整数;
- a1,a2,…,an 互不相等。
一个序列的值定义为它里面所有数的乘积,即 a1a2⋯an。
请求出所有不同合法序列的值的和。两个序列不同,当且仅当它们存在某一位不一样。
输出答案对 mod 取余的结果。
输入格式
一行 3 个数 A,n,mod,意义如上所述。
输出格式
一行一个结果。
样例输入
9 7 10007
样例输出
3611
数据范围
- 测试点 0:A≤10,n≤10;
- 测试点 1∼3:A≤1000,n≤20;
- 测试点 4∼9:A≤109,n≤20;
- 测试点 10∼19:A≤109,n≤500。
对于全部数据,mod≤109,且 mod 为素数,mod>A>n+1。
来源与许可
本题题面与测试数据整理自 BZOJ 2655。
样例 1
输入
9 7 10007
输出
3611