#include <stdio.h>
int sum;
int f(int m,int n){
if(m==0||n==1) return 1; //没有苹果,盘子等于一
else if(m<n) return f(m,m); //苹果少盘子多,肯定最少有n-m个空盘子,所以只要做把m个苹果放到m个盘子里
else return f(m-n,n)+f(m,n-1); //每个盘子中放一个+第一个盘子不放
}
int main(){
int t;
scanf("%d%*",&t); //输入组数后存在一个回车符,所以应该屏蔽
while(t--){
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",f(m,n));
}
return 0;
}