#include <bits/stdc++.h>
#define MAX 10
using namespace std;


int fun(int m, int n) {
    if (m == 0 || n == 1)   //没有苹果或只有一个盘子时,都是一种放法
        return 1;

    if (m < n)
        return fun(m, m);   //盘子过多,则始终有n-m个盘子为空,抽取也不影响结果
    else    //m >= n
        return fun(m, n - 1) + fun(m - n,n); //含有0的方案数 + 不含有0的方案数
}

int main() {
    int dp[MAX];
    int m, n;
    cin >> m >> n; //m个苹果、n个盘子
    cout << fun(m, n);

}