#include<iostream>
#include<cstring>
using namespace std;
int t,n,a;
int i,j,k,p;
int c[100000];//用来存储n!的结果
int main( ){
cin>>t;
while(t--){
memset(c,0,sizeof(c));
cin>>n>>a;
c[0]=1;
int len=1;//l 代表位数
for(i=2;i<=n;i++){
int x=0;//x存放进位
for(j=0;j<len;j++)//高精度*单精度
{ c[j]=c[j]*i+x;//计算阶乘
x=c[j]/10;//进位计算
c[j]%=10;//当前位置的值
}
while(x>0)//还有进位的情况
{
c[len]=x%10;
len++;
x/=10;
}
}
int cnt=0;//计数
for(k=0;k<len;k++){
if(c[k]==a)cnt++; //统计数组中数码a的个数;
}
cout<<cnt;
}
return 0;
}