小G的排列
题号:NC218401
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

题目中设p1,p2,…,pn是1,2,…,n的一个排列。
如果该排列的一个连续子段pl,pl+1,…,pr满足相邻两项的差的绝对值为1, 
则说它是一个好的子段。现已知任意好的子段的长度均不超过m. 
求满足该条件的排列数,对10^9+7取模。

输入描述:

样例会给出一行输入两个整数代表n,m

输出描述:

请输出所有满足该条件的排列数,需要答案对10^9+7取模。
示例1

输入

复制
5 2

输出

复制
92
示例2

输入

复制
3 1

输出

复制
0

备注:

1<=m<=n<=5e3