P1088

[Jsoi2011]同分异构体计数

[Jsoi2011]同分异构体计数

Antonio 最近对有机化学产生了兴趣,他想请你帮助他快速计算某类烃的同分异构体数量。

为方便描述,作出如下定义:

  • 环烷烃:具有 nn 个碳原子的环烷烃,可以表示为一张具有 nn 个顶点、nn 条边的无向连通简单图,其结构由一个基环及环上各顶点连接的外向树组成。每个顶点的度数不超过 44。
  • mm-环烷烃:环上至多有 mm 个顶点的环烷烃。由于任意两个顶点之间至多有 11 条边,因此环上至少有 33 个顶点。
  • 同构:假设结构 AA 和结构 BB 均具有 nn 个碳原子。若能够分别将 AA 和 BB 中的碳原子编号为 1∼n1\sim n,使得对于任意编号为 v1v_1 和 v2v_2 的两个碳原子,它们在 AA 中相连当且仅当它们在 BB 中相连,则称 AA 和 BB 同构。换言之,AA 和 BB 对应的图同构。

现在给定 nn、mm 和素数 pp,请统计含有 nn 个碳原子的、互不同构的 mm-环烷烃数量。由于答案可能很大,你只需要输出其对 pp 取模的结果。

本题不考虑某种结构在化学上能否稳定存在,也不考虑其他异构方式。

输入格式

输入仅一行,包含三个以空格分隔的整数 nn、mm 和 pp。

保证 m≤nm\le n,且 pp 为素数。

输出格式

输出一行一个整数,表示含有 nn 个碳原子的、互不同构的 mm-环烷烃数量对 pp 取模的结果。

样例输入

10 10 66103

样例输出

475

数据范围

  • 3≤n≤1033\le n\le 10^3;
  • 3≤m≤503\le m\le 50,且 m≤nm\le n;
  • 104≤p≤2×109+1010^4\le p\le 2\times 10^9+10,且 pp 为素数。

来源与许可

本题为 JSOI 2011 试题「同分异构体计数」,题面与测试数据整理自 BZOJ。

样例 1

输入

10 10 66103

输出

475