# 设有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))