#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")