atcoder#ABC284H. [ABC284Ex] Count Unlabeled Graphs

[ABC284Ex] Count Unlabeled Graphs

配点 : 600600

問題文

あなたは次の一連の操作によってグラフを生成します。

  • 頂点ラベルのない NN 頂点の単純無向グラフを 1 つ自由に選ぶ。
  • グラフの各頂点に KK 以下の正整数を 1 個ずつ書きこむ。ただし、KK 以下の正整数であってどの頂点にも書きこまれない数が存在してはならない。

操作によって得られるグラフとしてあり得るものの個数を mod P\text{mod }P で数え上げてください。(PP素数)

ただし、2 つのグラフは、以下の条件を満たすようにそれぞれのグラフの頂点に頂点ラベル v1,v2,,vNv_1, v_2, \dots, v_N をつけられる場合に同じグラフであるとみなします。

  • 1iN1 \leq i \leq N であるすべての ii について、頂点 viv_i に書きこまれた数が 2 つのグラフの間で一致している。
  • 1i<jN1 \leq i \lt j \leq N であるすべての (i,j)(i, j) について、vivjv_iv_j 間の辺の有無が 2 つのグラフの間で一致している。

制約

  • 1KN301 \leq K \leq N \leq 30
  • 108P10910^8 \leq P \leq 10^9
  • PP は素数
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN KK PP

出力

答えを出力せよ。

3 1 998244353
4

条件を満たすグラフは次の 44 通りです。

image

3 2 998244353
12

条件を満たすグラフは次の 1212 通りです。

image2

5 5 998244353
1024
30 15 202300013
62712469