E. Позиции в перестановке
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Перестановкой p называется упорядоченный набор чисел p1,  p2,  ...,  pn, состоящий из n различных целых положительных чисел, каждое из которых не больше чем n. Обозначим i-ый элемент перестановки p через pi. Число n будем называть размером или длиной перестановки p1,  p2,  ...,  pn.

Назовем позицию i (1 ≤ i ≤ n) в перестановке p1, p2, ..., pn хорошей, если |p[i] - i| = 1. Посчитайте количество перестановок размера n с ровно k хорошими позициями. Ответ выведите по модулю 1000000007 (109 + 7).

Входные данные

В единственной строке записаны два целых числа n и k (1 ≤ n ≤ 1000, 0 ≤ k ≤ n).

Выходные данные

Выведите количество перестановок размера n с ровно k хорошими позициями по модулю 1000000007 (109 + 7).

Примеры
Входные данные
1 0
Выходные данные
1
Входные данные
2 1
Выходные данные
0
Входные данные
3 2
Выходные данные
4
Входные данные
4 1
Выходные данные
6
Входные данные
7 4
Выходные данные
328
Примечание

Единственная перестановка размера 1 имеет 0 хороших позиций.

Перестановка (1, 2) имеет 0 хороших позиций, а перестановка (2, 1) — 2 позиции.

Перестановки размера 3:

  1. (1, 2, 3) — 0 позиций
  2. — 2 позиции
  3. — 2 позиции
  4. — 2 позиции
  5. — 2 позиции
  6. (3, 2, 1) — 0 позиций