Permutation $*p*$ is an ordered set of integers $*p*_{1}, *p*_{2}, ..., *p*_{*n*}$, consisting of $*n*$ distinct positive integers, each of them doesn't exceed $*n*$. We'll denote the $*i*$-th element of permutation $*p*$ as $*p*_{*i*}$. We'll call number $*n*$ the size or the length of permutation $*p*_{1}, *p*_{2}, ..., *p*_{*n*}$.
We'll call position $*i*$ ($1 ≤ *i* ≤ *n*$) in permutation $*p*_{1}, *p*_{2}, ..., *p*_{*n*}$ good, if $|*p*[*i*] - *i*| = 1$. Count the number of permutations of size $*n*$ with exactly $*k*$ good positions. Print the answer modulo $1000000007$ ($10^{9} + 7$).
Input
The single line contains two space-separated integers $*n*$ and $*k*$ ($1 ≤ *n* ≤ 1000, 0 ≤ *k* ≤ *n*$).
Output
Print the number of permutations of length $*n*$ with exactly $*k*$ good positions modulo $1000000007$ ($10^{9} + 7$).
Note
The only permutation of size 1 has 0 good positions.
Permutation $(1, 2)$ has 0 good positions, and permutation $(2, 1)$ has 2 positions.
Permutations of size 3:
$(1, 2, 3)$— 0 positions
— 2 positions
— 2 positions
— 2 positions
— 2 positions$(3, 2, 1)$— 0 positions
样例
1 0
1
2 1
0
3 2
4
4 1
6
7 4
328
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。