難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Simple Counting Problem, but Circular

作成者 seekworser

難易度(作成者設定) Lv.6

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

問題文

円周上に NN 個の点が等間隔に並んでいます。 KK 種類の色があり、それぞれ色 1,2,…,K1, 2, \dots, K と呼びます。

MM 個の条件が与えられます。ii 番目の条件は組 (xi,yi)(x_i, y_i) で表され、 色 xix_i で塗られた点と色 yiy_i で塗られた点が隣り合ってはならないことを示します。 xi=yix_i = y_i の場合は、色 xix_i で塗られた点どうしが隣り合ってはならないことを示します。

これらの NN 個の点それぞれを KK 種類の色のいずれかで塗り、与えられた MM 個の条件をすべて満たす方法の個数を 10000000071000000007 で割った余りを出力してください。 ただし、回転によって一致するような塗り分けは1通りとして数えてください。

制約

  • 3≤N≤1093 \leq N \leq 10^{9}
  • 2≤K≤52 \leq K \leq 5
  • 1≤M≤K(K+1)21 \leq M \leq \frac{K (K + 1)}{2}
  • 1≤xi≤yi≤K(1≤i≤M)1 \leq x_i \leq y_i \leq K \quad (1 \leq i \leq M)
  • (xi,yi)≠(xj,yj)(1≤i<j≤M)(x_i, y_i) \neq (x_j, y_j) \quad (1 \leq i \lt j \leq M)
  • 入力はすべて整数

入力

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

N K MN \ K \ M x1x_1 y1y_1 x2x_2 y2y_2 ⋮\vdots xMx_M yMy_M

出力

答えを 11 行で出力せよ。

サンプル 1

入力

3 3 1
1 2

出力

7

色 11 を黒、色 22 を白、色 33 を赤で表すと、以下の 77 通りが条件を満たします。 画像の説明

サンプル 2

入力

9 2 1
1 1

出力

10

色 11 を黒、色 22 を白で表すと、以下の 1010 通りが条件を満たします。

サンプル 3

入力

1000000000 5 3
1 2
2 3
4 4

出力

142911141

答えを 10000000071000000007 で割った余りを出力してください。