#cf17finalg. [cf17_final_g]Mancala

[cf17_final_g]Mancala

問題文

以下のようなゲームを考えます。

  • 11 列に並んだ NN 個のマスとたくさんの石を用意する。
  • 最初に、マス i(1leqileqN)i\\ (1 \\leq i \\leq N)aia_i 個の石を入れる。
  • プレイヤーは「ちょうど ii 個の石が入っているようなマス ii11 つ選び、そこに入っている石を全て捨て、マス 11 からマス i1i-1 までの i1i-1 個のマスに石を 11 つずつ追加する」という操作を好きなだけ行う。
  • 最終的にマスに残った石の個数の合計がスコアとなる。

長さ NN の数列 aa に対してこのゲームを行ったときのスコアとして考えられる最小値を f(a)f(a) とします。

このとき、長さが NN で各要素が 00 以上 KK 以下であるような全ての数列 aa についての f(a)f(a) の総和はいくつになるでしょうか? 答えは非常に大きくなる可能性があるため、1000000007(=109+7)1000000007 (= 10^9+7) で割った余りを求めてください。

制約

  • 1leqNleq1001 \\leq N \\leq 100
  • 1leqKleqN1 \\leq K \\leq N

入力

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

NN KK

出力

f(a)f(a) の総和を 1000000007(=109+7)1000000007 (= 10^9+7) で割った余りを出力せよ。


入力例 1

2 2

出力例 1

10

長さが 22 で各要素が 00 以上 22 以下であるような数列 aa99 通り考えられますが、それぞれに対する f(a)f(a) の値とそれを達成するための操作の例は以下の通りです。

  • f(0,0)f(\\{0,0\\})00(なにも操作できない)
  • f(0,1)f(\\{0,1\\})11(なにも操作できない)
  • f(0,2)f(\\{0,2\\})00(マス 22 、マス 11 の順に操作する)
  • f(1,0)f(\\{1,0\\})00(マス 11 を選ぶ)
  • f(1,1)f(\\{1,1\\})11(マス 11 を選ぶ)
  • f(1,2)f(\\{1,2\\})00(マス 11 、マス 22 、マス 11 の順に操作する)
  • f(2,0)f(\\{2,0\\})22(なにも操作できない)
  • f(2,1)f(\\{2,1\\})33(なにも操作できない)
  • f(2,2)f(\\{2,2\\})33(マス 22 を選ぶ)

入力例 2

20 17

出力例 2

983853488