E. Introverted Dinner
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Kaladin and his friends are very tired after a long and hard day of work. Now they sit down to have soup at a round table. However, since everyone is very tired, no one wants to talk. Even simple questions like "What is your name?" would be stressful.

As no one wants to risk a conversation, no one sits next to anyone. Kaladin's friend, Syl, became interested in counting how many ways people can sit at the round table so that no one is next to anyone.

The seats at the table are numbered from $$$1$$$ to $$$n$$$, and the people from $$$1$$$ to $$$k$$$. A way of seating the people at the round table can be represented by a list of size $$$k$$$, $$$l$$$, where $$$l_i$$$ represents the chair that the $$$i$$$-th person sat in. That is, for this counting, it matters which person is sitting in which chair.

Return the answer modulo $$$10^9 + 7$$$.

Input

The input consists of two integers: $$$n$$$ and $$$k$$$, indicating the number of seats at the table and the number of people who will eat, respectively.

It is guaranteed that $$$1 \leq k \leq n \leq 10^5$$$.

Output

Print a single integer $$$0 \leq x \lt 10^9 + 7$$$, the number of ways that people can sit at the round table so that no one is next to anyone, modulo $$$10^9 + 7$$$.

Examples
Input
1 1
Output
1
Input
2 1
Output
2
Input
2 2
Output
0
Input
5 2
Output
10
Note

As the table is round, the position $$$i$$$ is next to position $$$i+1$$$, for $$$1\leq i \lt n$$$, and also position $$$1$$$ is next to position $$$n$$$.