#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) return 0;
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;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KbG9uZyBsb25nIGludCBnb28oaW50LGludCk7CmludCBtYWluKCl7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgaW50ICoqdXJhaW49KGludCoqKW1hbGxvYyhzaXplb2YoaW50Kikqbik7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICAqKHVyYWluK2kpPShpbnQqKW1hbGxvYyhzaXplb2YoaW50KSoyKTsKICAgIH0KICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIHNjYW5mKCIlZCAlZCIsJnVyYWluW2ldWzBdLCZ1cmFpbltpXVsxXSk7CiAgICB9CiAgICBpbnQgYSxiOwogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgYT11cmFpbltpXVswXTsKICAgICAgICBiPXVyYWluW2ldWzFdOwogICAgICAgIHByaW50ZigiJWxsZCAlbGxkXG4iLGdvbyhhLGIpLGdvbyhhLGIpLWdvbyhhLWIrMSxiKSk7CiAgICB9CiAgICByZXR1cm4gMDsKfQpsb25nIGxvbmcgaW50IGdvbyhpbnQgbSxpbnQgbil7CiAgICBpZihuPm0pIHJldHVybiAwOwogICAgaWYobj4obS8yKSl7CiAgICAgICAgbj1tLW47CiAgICB9CiAgICBsb25nIGxvbmcgaW50IHJlc3VsdD0xOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIHJlc3VsdD1yZXN1bHQqKG0taSsxKS9pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQ==