//怪不得选择填空这么少也不太难,原来编程这么难做的么【泪流满面】
//正确率死活只有15%只知道倒着思考,按上楼梯的最后一阶往下看,哪位大佬解解惑【哭哭】
#include <iostream>
#include<vector>
usingnamespacestd;
intmain()
{
int n, m;
cin >> n >> m;
int*a = new int[n+1];
a[1] = 1;
a[2] = 2;
a[3] = 4;
if(n>3)
{
for(int i = 4; i <= n; i++)
{
for(int j = 0; j<m; j++)
{
a[i] = a[i] + a[i - 1 - j];
}
}
}
cout << a[n];
return 0;
}