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

У Ксюши — сессия, сегодня она учит комбинаторику. Вот одна из задач, которую ей нужно научиться решать.

Сколько существует различных деревьев, состоящих из n вершин, каждое из которых обладает следующими свойствами:

  • дерево — помеченное, то есть вершины дерева пронумерованы от 1 до n;
  • каждая вершина дерева связана не более чем с тремя другими вершинами, при этом вершина с номером 1 связана не более чем с двумя другими вершинами;
  • мощность максимального паросочетания дерева равна k.

Два дерева считаются различными, если существуют такие две вершины u и v, что в одном дереве они соединены ребром, а в другом — нет.

Помогите Ксюше решить задачу для заданных n и k. Так как ответ может быть достаточно большим, выведите его по модулю 1000000007 (109 + 7).

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

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

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

Выведите единственное целое число — ответ на задачу по модулю 1000000007 (109 + 7).

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

Если вы не знакомы с понятием максимальное паросочетание, почитайте статью по ссылке: http://ru.wikipedia.org/wiki/Паросочетание.