#include <iostream>
#include<cstring>
using namespace std;
const int N = 30;
int f[N][N];//f[i][j]i个苹果放入j个盘子
//分成没有空盘子和有空盘子
//有空盘子f[i][j]=f[i][j-1]
//没有空盘子f[i][j]=f[i-j][j],每个盘子至少有一个苹果那方案数量和
//每个盘子都减去以一个苹果的方案数量相同
int main() {
int n, m;
while (cin >> m >> n) {
memset(f, 0, sizeof f);
for (int j = 0; j <= n; j++)
f[0][j] = 1;
/*for(int i=0;i<=m;i++)
f[i][0]=1;*/
//f[0][0] = 1;
for (int i = 1; i <= m; i++)
for (int j = 0; j <= n; j++) {
f[i][j]=f[i][j-1];
//这里i-j可能为负数要小心
if(i-j>=0)
f[i][j] += f[i - j][j];
}
cout << f[m][n] << endl;
}
}
// 64 位输出请用 printf("%lld")