AT_cf17_final_g Mancala
Description
[problemUrl]: https://atcoder.jp/contests/cf17-final/tasks/cf17_final_g
以下のようなゲームを考えます。
- $ 1 $ 列に並んだ $ N $ 個のマスとたくさんの石を用意する。
- 最初に、マス $ i\ (1\ \leq\ i\ \leq\ N) $ に $ a_i $ 個の石を入れる。
- プレイヤーは「ちょうど $ i $ 個の石が入っているようなマス $ i $ を $ 1 $ つ選び、そこに入っている石を全て捨て、マス $ 1 $ からマス $ i-1 $ までの $ i-1 $ 個のマスに石を $ 1 $ つずつ追加する」という操作を好きなだけ行う。
- 最終的にマスに残った石の個数の合計がスコアとなる。
長さ $ N $ の数列 $ a $ に対してこのゲームを行ったときのスコアとして考えられる最小値を $ f(a) $ とします。
このとき、長さが $ N $ で各要素が $ 0 $ 以上 $ K $ 以下であるような全ての数列 $ a $ についての $ f(a) $ の総和はいくつになるでしょうか? 答えは非常に大きくなる可能性があるため、$ 1000000007\ (=\ 10^9+7) $ で割った余りを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $
Output Format
$ f(a) $ の総和を $ 1000000007\ (=\ 10^9+7) $ で割った余りを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100 $
- $ 1\ \leq\ K\ \leq\ N $
### Sample Explanation 1
長さが $ 2 $ で各要素が $ 0 $ 以上 $ 2 $ 以下であるような数列 $ a $ は $ 9 $ 通り考えられますが、それぞれに対する $ f(a) $ の値とそれを達成するための操作の例は以下の通りです。 - $ f(\{0,0\}) $:$ 0 $(なにも操作できない) - $ f(\{0,1\}) $:$ 1 $(なにも操作できない) - $ f(\{0,2\}) $:$ 0 $(マス $ 2 $ 、マス $ 1 $ の順に操作する) - $ f(\{1,0\}) $:$ 0 $(マス $ 1 $ を選ぶ) - $ f(\{1,1\}) $:$ 1 $(マス $ 1 $ を選ぶ) - $ f(\{1,2\}) $:$ 0 $(マス $ 1 $ 、マス $ 2 $ 、マス $ 1 $ の順に操作する) - $ f(\{2,0\}) $:$ 2 $(なにも操作できない) - $ f(\{2,1\}) $:$ 3 $(なにも操作できない) - $ f(\{2,2\}) $:$ 3 $(マス $ 2 $ を選ぶ)