嗨!我是一个铁杆体育迷。看着你最喜欢的运动队获胜是一个激动人心的时刻。如果你知道如何赢得博彩公司的赌注,这不仅令人愉悦,而且还能获利。但如何预测谁会赢得比赛呢?这就是问题所在……
但我终于揭开了这个秘密。所有球员的球衣上都有从 $1$ 到 $n$ 的不同编号。诀窍在于知道国歌奏响时 $n$ 名球员站立的特殊顺序。如果对于区间 $[1, n]$ 中的任意 $i$,都有 $|A_i - i| \le k$,那么比赛将以你最喜欢的球队获胜而告终。出于好心,裁判会在比赛开始前告诉你数字 $k$。
例如,当 $k = 1$ 且球员顺序为 $(3, 4, 1, 2)$ 时,你的球队在这种情况下肯定会输。但如果 $k = 2$,他们肯定会赢。
我已经从博彩公司那里赚够了钱,所以现在轮到你使用这个诀窍了。请计算给定 $k$ 时 $n$ 名球员的获胜排列数量。
输入格式
第一行包含两个整数 $n$(球队中的球员人数)和 $k$(你被告知的秘密参数)。
$$0 \le k \le 9$$ $$1 \le n \le 10^{10-k}$$
输出格式
你需要输出获胜排列的数量,对 $10^9 + 7$ 取模。
样例
样例输入 1
4 2
样例输出 1
14