//用递归
//当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m) 
//当n<=m:放法可以分成两类:
//1、有一个空盘子,记,放法f1 = f(m,n-1);
//2、没有空盘子,所有盘子都有1个苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,记,放法f2 = f(m-n,n).
//而总的放苹果的放法数目等于两者的和,即 f(m,n) = f1 + f2 = f(m,n-1)+f(m-n,n)
#include<stdio.h>
int f(int m,int n){
    int method;
    if(m==0||n==1)
        method=1;
    else if (n>m)
     method=f(m,m); 
    else if (n<=m)
       method=f(m,n-1)+f(m-n,n);
    return method;
}
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    int method;
    method=f(m,n);
    printf("%d",method);
}