#1449. Polygon

Polygon

题目描述

我们现在来考虑一个包含N\red N个顶点的正多边形的切割方法。

每一次,我们可以沿着某个多边形的一条弦(顶点与顶点的连线)进行切割,将这个多边形一分为二。

假设每个顶点都是不同的。

那么对于一个正方形(4\red 4个顶点的正多边形),我们一共有3\red 3种方法切割它,沿两条对角线切割或者根本不切割。

但是如果要将其切割成2\red 2份则只有2\red 2种方法;要将其切割成4\red 4份是不可能的。

(注意每一次切割我们只对一个多边形操作,不能一次将2\red 2个三角形切成4个三角形) 现在我们的问题就是,对于一个包含N\red N个顶点的正多边形,要把它切成K\red K份,有多少种切法?

这个切法数目可能很多,只要求输出切法总数模P的余数。

你的任务就是编写程序解决这个问题。

输入格式

仅一行三个数,N\red N,K\red K,P\red P

输出格式

仅一个数表示不同的方案数。

样例

输入样例1

4 2 10

输出样例1

2

输入样例2

6 4 100

输出样例2

14

提示

对于20%\red {20\%}的数据 3N10,1K100\red {3 ≤ N ≤ 10 , 1 ≤ K ≤ 100}

对于50%\red {50\%}的数据 3N50,1K100\red {3 ≤ N ≤ 50 , 1 ≤ K ≤ 100 }

对于100%\red {100\%}的数据 3N100,1K100\red {3 ≤ N ≤ 100 , 1 ≤ K ≤ 100}

对于所有的数据,P1000000000\red {P ≤ 1000000000 }