#include using namespace std;
int main() { int n, m; cin >> n >> m; // 创建一个数组来存储每个位置的方案数 long long dp[50]; // 初始化前m个位置的方案数 for (int i = 0; i < m; i++) { dp[i] = 1 << i; } // 动态规划计算后续位置的方案数 for (int i = m; i < n; i++) { dp[i] = 0; for (int j = 1; j <= m; j++) { dp[i] += dp[i - j]; } } cout << dp[n - 1] << endl; return 0; }