#思路:最难的是想到动态规划的状态方程,想到了一切就水到渠成 #f(m,n)为m个苹果放n个盘子,可划分为以下两种情况 #每个盘子都放苹果:f(m-n,n) #允许有盘子空着,f(m,n-1) def f(m,n): if m<=1 or n<=1: return 1 else: if m>=n:#可以每个盘子都放苹果 return f(m-n,n)+f(m,n-1) else:#苹果太少放不了 return f(m,n-1) m,n=map(int,input().split()) print(f(m,n))