M. Мадока и олимпиада в Новосибирске
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мадока уже закончила писать муниципальный этап в Новосибирске и пошла домой ждать результатов закрытого тестирования.

На олимпиаде была ровно одна задача — дана перестановка чисел от $$$1$$$ до $$$n$$$: $$$p_1, p_2, \ldots, p_n$$$. Нужно узнать, какое минимальное раз можно поменять местами соседние элементы, чтобы перестановка стала отсортированной в порядке возрастания.

Но Мадока решила её следующим образом: $$$k + \frac{|1 - p_1| + |2 - p_2| + \ldots + |n - p_n|}{2}$$$. Так как жюри знает, кто отец Мадоки, то, чтобы не потерять работу, они должны сделать такие тесты, чтобы решение Мадоки было верным. И поэтому им стало интересно, сколько существует перестановок длины $$$n$$$, для которых решение Мадоки выведет верный ответ на задачу, но так как ответ на задачу может быть слишком большим, то выведите его по модулю $$$10^9 + 7$$$.

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

В единственной строке через пробел заданы два числа $$$n, k$$$ ($$$2 \leq n \leq 17$$$, $$$0 \leq k \leq 50$$$).

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

В единственной строке выведите ровно число — количество перестановок длины $$$n$$$ по модулю $$$10^9 + 7$$$, для которых минимальное количество свапов соседних элементов для сортировки равно $$$k + \frac{|1 - p_1| + |2 - p_2| + \ldots + |n - p_n|}{2}$$$.

Примеры
Входные данные
3 1
Выходные данные
1
Входные данные
3 0
Выходные данные
5
Входные данные
4 0
Выходные данные
14
Примечание

В первом примере подходит только перестановка $$$3, 2, 1$$$, для неё минимальное количество свапов — $$$3$$$, а у Мадоки ответ — $$$\frac{|1 - 3| + |2 - 2| + |3 - 1|}{2} + 1=2 + 1 = 3$$$.