#gw2015e. [gw2015_e]シフト塗り分け

[gw2015_e]シフト塗り分け

問題文

NN 個のボールが 11 列に並んでいる。KK 種類の色でボールを塗り分ける(KNK^N 通りの塗り方がある)。連続するちょうど LL 個のボールを shift させることを何回か繰り返して色の並びを同じにできるような 22 つの塗り方を同じ塗り方だとみなすとき、何種類の異なる塗り方が存在するだろうか。ただし、ボール ii, ボール i+1i+1, ... ボール i+L1i+L-1 を shift させるとは、これらのボールをボール i+L1i+L-1, ボール ii, ボール i+1i+1, ... ボール i+L2i+L-2 というように並び替える操作のことであるものとする。


入力

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

NN KK LL

  • 11 行目には、33 つの整数 N(2N106),K(1K106),L(2LN)N (2 ≦ N ≦ 10^6), K (1 ≦ K ≦ 10^6), L (2 ≦ L ≦ N) が空白区切りで与えられる。

出力

異なる塗り方の種類数を 109+710^9+7 で割った余りを 11 行に出力せよ。出力の末尾に改行を入れること。


入力例1


3 3 3

出力例1


11

この例では、以下のような 1111 通りの異なる塗り方がある。

  • 1,1,11,1,1
  • 1,1,21,1,2
  • 1,1,31,1,3
  • 1,2,21,2,2
  • 1,2,31,2,3
  • 1,3,21,3,2
  • 1,3,31,3,3
  • 2,2,22,2,2
  • 2,2,32,2,3
  • 2,3,32,3,3
  • 3,3,33,3,3

入力例2


3 3 2

出力例2


10

この例では、以下のような 1010 通りの異なる塗り方がある。

  • 1,1,11,1,1
  • 1,1,21,1,2
  • 1,1,31,1,3
  • 1,2,21,2,2
  • 1,2,31,2,3
  • 1,3,31,3,3
  • 2,2,22,2,2
  • 2,2,32,2,3
  • 2,3,32,3,3
  • 3,3,33,3,3