def f(i,j):
    if i==0:#每个盘子恰好被分了一个苹果,无苹果可再分
        return 1
    if j==1:#一个盘子放i个苹果,(另一个空着,或者不存在另一个)
        return 1
    if i<j:
        return f(i,i)
    if i>=j:
        return f(i,j-1)+f(i-j,j)

m,n=map(int,input().split(' '))#m苹果,n盘子
print(f(m,n))

i个苹果放在j个盘子,分为每个盘子至少放一个和有一个盘子空着两种情况,每种情况还可以接着往下分,一直分直到j个盘子0个苹果(每个盘子恰好被分了一个苹果,无苹果可再分)和1个盘子放i个苹果的边界