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);
          }
      }
}