#include <stdlib.h>
#include <stdio.h>
long long int goo(int,int);
int main(){
int n;
int **urain
=(int**)malloc(sizeof(int*)*n
);
for(int i=0;i<n;i++){
*(urain
+i
)=(int*)malloc(sizeof(int)*2);
}
for(int i=0;i<n;i++){
scanf("%d %d",&urain
[i
][0],&urain
[i
][1]);
}
int a,b;
for(int i=0;i<n;i++){
a=urain[i][0];
b=urain[i][1];
printf("%lld %lld\n",goo
(a
,b
),goo
(a
,b
)-goo
(a
-b
+1,b
));
}
return 0;
}
long long int goo(int m,int n){
if(n>(m/2)){
n=m-n;
}
long long int result=1;
for(int i=1;i<=n;i++){
result=result*(m-i+1)/i;
}
return result;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2luY2x1ZGUgPHN0ZGlvLmg+Cgpsb25nIGxvbmcgaW50IGdvbyhpbnQsaW50KTsKCmludCBtYWluKCl7CgogICAgaW50IG47CgogICAgc2NhbmYoIiVkIiwmbik7CgogICAgaW50ICoqdXJhaW49KGludCoqKW1hbGxvYyhzaXplb2YoaW50Kikqbik7CgogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CgogICAgICAgICoodXJhaW4raSk9KGludCopbWFsbG9jKHNpemVvZihpbnQpKjIpOwoKICAgIH0KCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKCiAgICAgICAgc2NhbmYoIiVkICVkIiwmdXJhaW5baV1bMF0sJnVyYWluW2ldWzFdKTsKCiAgICB9CgogICAgaW50IGEsYjsKCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKCiAgICAgICAgYT11cmFpbltpXVswXTsKCiAgICAgICAgYj11cmFpbltpXVsxXTsKCiAgICAgICAgcHJpbnRmKCIlbGxkICVsbGRcbiIsZ29vKGEsYiksZ29vKGEsYiktZ29vKGEtYisxLGIpKTsKCiAgICB9CgogICAgcmV0dXJuIDA7Cgp9Cgpsb25nIGxvbmcgaW50IGdvbyhpbnQgbSxpbnQgbil7CgogICAgaWYobj4obS8yKSl7CgogICAgICAgIG49bS1uOwoKICAgIH0KCiAgICBsb25nIGxvbmcgaW50IHJlc3VsdD0xOwoKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKCiAgICAgICAgcmVzdWx0PXJlc3VsdCoobS1pKzEpL2k7CgogICAgfQoKICAgIHJldHVybiByZXN1bHQ7Cgp9Cgo=