D - サバゲー Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

パンチくんが運営している会社では、サバイバルゲームが大流行りです。

通常のサバイバルゲームはチームが 2 つですが、パンチくんは普通のゲームに飽きてしまったため、多くのチームで対戦することにしました。

参加人数と、チームの数が与えられるので、チームの分け方が何パターンあるか求めて下さい。

ただし、各参加者は必ずどれか 1 つだけのチームに所属するものとし、また 0 人のチームがあってはならないものとします。


入力

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

N M
  • サバイバルゲームに参加する人数 N (2 ≦ N ≦ 1000) と、チームの数 M (2 ≦ M ≦ N) が与えられる。

部分点

M = 2 を満たすテストケースに正解した場合、部分点として 40 点が与えられる。

出力

チームの分け方のパターン数を 1000000007( = 1,000,000,007) で割った余りを出力せよ。出力の末尾には改行をいれること。


入力例1

2 2

出力例1

1

2 人を 2 チームに分ける分け方は、 1 通りしかありません。


入力例2

3 2

出力例2

3

3 人を 2 チームに分ける分け方は、

  • { A, B }, { C }
  • { A, C }, { B }
  • { A }, { B, C }

3 通りです。

参加者は互いに区別がつきますが、チームは区別がつかないことに注意して下さい。

{ A, B }, { C }と、{ C }, { A, B } は同じものとしてカウントします。


入力例3

500 2

出力例3

695241506

入力例4

20 10

出力例4

584923236