# 设有m个苹果,n个盘子
# 1.n>m,必定有n-m个盘子空着,空着不影响。所以(m,n)问题依旧可以是(m,m)
# 2.n<=m,
# (1)至少一个盘子空着,(m,n)问题转为(m,n-1)
# (2)每个盘子都有苹果,假设至少有一个苹果,最多剩下m-n个苹果,(m,n)问题转为(m-n,n)
# 3.如果只有一个苹果或者只有一个盘子,返回1,
# 4.如果没有苹果或者没有盘子,返回1

def f(m,n):
    if m==0 or n==0 or m==1 or n==1:
        return 1
    elif n>m:
        return f(m,m)
    elif n<=m:
        return f(m,n-1)+f(m-n,n)

m,n=map(int,input().split())
print(f(m,n))