import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//输入两个正整数
while(sc.hasNextInt()){
int m =sc.nextInt();//m 苹果数量
int n = sc.nextInt();//n 盘子数量
System.out.println(count(m,n));
}
}
public static int count(int m,int n){
//递归解法 ,递归结束条件,当只有1个盘子 或者0个苹果时,只有一种方法
if(m==0 || n==1){
return 1;
}else if(m<n){
//当苹果的数量小于盘子的数量时,必定有盘子空着,那方法就是和m个苹果放m个盘子 ,空盘子不管
return count(m,m);
}else{
//当苹果的数量大于或等于盘子的数量时,那每个盘子至少有一个,最多剩下m-n个苹果又继续放n个盘子
//或者至少有1个盘子是空着,那就是m个苹果放在n-1个盘子上
return count(m,n-1)+count(m-n,n);
}
}
}