#P1822. Fence2

Fence2

本题没有可用的提交语言。

描述

在成功粉刷了第一面栅栏后,工人们受雇为城里一位富人粉刷他的栅栏。由于满意整个团队所提供的薪酬,这次工人们并没有提出过多要求。然而,他们决定按班次工作:首先是第一班次的工人,然后是第二班次,以此类推。每个班次至少有1个工人,最多有kk个工人。而且,每个工人只会在一个班次工作。栅栏的主人惊讶于工人们的组织能力,并且作为一个喜爱计数问题的人,他希望知道将NN个工人安排成班次的方式有多少种。因为他宣布将会给予那个给出正确答案的人一笔丰厚的奖金,所以你决定编写一个程序来帮助你赢得这个游戏的第一奖。

编写一个程序,输入给定的NNKK值,计算将NN个工人安排成班次的可能性,即每个班次至少有1个工人,最多有KK个工人。两个安排是不同的,如果存在一个工人在不同的班次中工作。

输入

输入的第一行有两个整数:NNKK1KN501 \leq K \leq N \leq 50),表示工人的总数和一个班次最多能安排的工人数。

输出

输出一个整数,表示安排的可能性数量。

输入数据1

3 2

输出数据1

12

提示

对于这个示例,班次的安排如下:

可能性1 可能性2 可能性3 可能性4 可能性5 可能性6
班次1: 1 2 班次1: 1 3 班次1: 3 2 班次1: 1 班次1: 2 班次1: 3
班次2: 3 班次2: 2 班次2: 1 班次2: 2 3 班次2: 3 1 班次2: 1 2
可能性7 可能性8 可能性9 可能性10 可能性11 可能性12
班次1: 1 班次1: 2 班次1: 3
班次2: 2 班次2: 3 班次2: 1 班次2: 3 班次2: 1 班次2: 2
班次3: 3 班次3: 2 班次3: 3 班次3: 1 班次3: 2 班次3: 1

来源
Romania OI 2002