#include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; vector<vector<int>> res; map<vector<int>, bool> myMap; vector<int> path; // int pathSum = 0; void backtrace(int num, int plate, int start) { if(plate==1) { if(num>=path.back()) { path.push_back(num); res.push_back(path); path.pop_back(); } return; } for(int i = start; i<num/2+1; i++) { path.push_back(i); backtrace(num-i, plate-1, i); path.pop_back(); } } int main() { int m, n; // m评估, n盘子 while (cin >> m >> n) { // 注意 while 处理多个 case if(n==1) { cout << 1 << endl; break; } backtrace(m, n, 0); cout << res.size() << endl; } } // 64 位输出请用 printf("%lld")