Мама испекла Мише на день рождения торт. Торт имеет форму выпуклого многоугольника с n вершинами. Вместе с гостями и родственниками у Миши на празднике оказалось k человек. В нужный момент Миша планирует разрезать торт на k частей. Каждый разрез должен представлять собой диагональ исходного многоугольника. Чтобы торт не развалился, разрезы не должны пересекаться нигде, кроме как в вершинах торта.
Как юного математика, Мишу заинтересовал вопрос — сколько существует способов разрезания торта на k частей указанным выше способом. Порядок выполнения разрезов не важен. Помогите Мише найти ответ на интересующий его вопрос.
Требуется написать программу, которая по заданным значениям чисел n и k определяет количество способов разрезания на k частей торта с n вершинами, как указано выше.
Формат входных данных
Входной файл содержит два целых числа n и k (1 ≤ k ≤ n ≤ 50, n ≥ 3).
Формат выходных данных
Выведите в выходной файл одно число — искомое количество способов разрезания торта.
Примеры входных и выходных файлов
cut.in |
cut.out |
4 2 |
2 |
6 4 |
14 |
3 2 |
0 |
Пояснение к примерам
Все способы разрезания торта с шестью вершинами на четыре части приведены на следующем рисунке.