AT_abc284_h [ABC284Ex] Count Unlabeled Graphs
Description
[problemUrl]: https://atcoder.jp/contests/abc284/tasks/abc284_h
あなたは次の一連の操作によってグラフを生成します。
- 頂点ラベルのない $ N $ 頂点の単純無向グラフを 1 つ自由に選ぶ。
- グラフの各頂点に $ K $ 以下の正整数を 1 個ずつ書きこむ。ただし、$ K $ 以下の正整数であってどの頂点にも書きこまれない数が存在してはならない。
操作によって得られるグラフとしてあり得るものの個数を $ \text{mod\ }P $ で数え上げてください。($ P $ は**素数**)
ただし、2 つのグラフは、以下の条件を満たすようにそれぞれのグラフの頂点に頂点ラベル $ v_1,\ v_2,\ \dots,\ v_N $ をつけられる場合に同じグラフであるとみなします。
- $ 1\ \leq\ i\ \leq\ N $ であるすべての $ i $ について、頂点 $ v_i $ に書きこまれた数が 2 つのグラフの間で一致している。
- $ 1\ \leq\ i\ \lt\ j\ \leq\ N $ であるすべての $ (i,\ j) $ について、$ v_iv_j $ 間の辺の有無が 2 つのグラフの間で一致している。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ P $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ K\ \leq\ N\ \leq\ 30 $
- $ 10^8\ \leq\ P\ \leq\ 10^9 $
- $ P $ は素数
- 入力される値はすべて整数
### Sample Explanation 1
条件を満たすグラフは次の $ 4 $ 通りです。 !\[image\](https://img.atcoder.jp/ghi/abc283h\_43c4abe0e541b7ebeaa8db2854cece91caeca71f03f452ca13c11e82f85e3a56.png)
### Sample Explanation 2
条件を満たすグラフは次の $ 12 $ 通りです。 !\[image2\](https://img.atcoder.jp/ghi/abc284h2\_ca96b7cb451b0e495209e3e201576d278de3fb823e5d2404bbce5d9f704e3259.png)