#include <bits/stdc++.h> using namespace std; // 非递归 只是动态规划 int myfun(int m, int n) { vector<vector<int>> dp(m+1, vector<int>(n+1, 0)); for(int j=0; j<=n; ++j) { dp[0][j] = 1; } for(int i=0; i<=m; ++i) { dp[i][1] = 1; } for(int i=0; i<=m; ++i) { for(int j=1; j<=n; ++j) { if(j>i) { dp[i][j] = dp[i][i]; } else { dp[i][j] = dp[i][j-1] + dp[i-j][j]; } } } return dp[m][n]; } int main() { int m, n; while (cin >> m >> n) { // 注意 while 处理多个 case cout<<myfun(m, n)<<endl; } } // 64 位输出请用 printf("%lld")