#include<string.h>
#include 
<stdio.h>

struct Num
{
    
int dig;
    
char n[1024];
}
;

int n, m, cnt;
Num num[
367];

Num mul(Num r, 
int x)
{
    Num numx
=r;

    
int a, b, i;
    
int c=0;
    
for(i=0;i<numx.dig;i++)
    
{
        a
=(int)(numx.n[i]);
        b
=a*x+c;
        
if(b>=10)
        
{
            c
=b/10;
            b
%=10;
        }

        
else c=0;
        numx.n[i]
=(char)(b);
    }

    
if(c>0)
    
{
        numx.n[numx.dig]
=char(c);
        numx.dig
++;
    }

    
return numx;
}

Num add(Num num1, Num num2)
{

    Num numx
=num1;
    numx.dig
=num1.dig>num2.dig?num1.dig:num2.dig;    
    
    
int a, b, i;
    
int c=0;
    
for(i=0;i<numx.dig;i++)
    
{
        a
=(int)(numx.n[i]);
        b
=a+(int)num2.n[i]+c;
        
if(b>=10)
        
{
            c
=b/10;
            b
%=10;
        }

        
else c=0;
        numx.n[i]
=(char)(b);
    }

    
if(c>0)
    
{
        numx.n[numx.dig]
=char(c);
        numx.dig
++;
    }

    
return numx;
}

void cal()
{
    
int i;
    
for(i=0;i<num[n].dig;i++)
    
{
        
if(num[n].n[i]==char(m))
            cnt
++;
    }

}


int main()
{    
    
int i,j;
    num[
0].n[0]=num[1].n[0]=1;
    num[
0].n[1]=num[1].n[1]=0;
    num[
0].dig=num[1].dig=1;
    
for(j=2;j<=366;j++)
    
{
        num[j].dig
=1;
        memset(num[j].n,
0,sizeof(num[j].n));
        
int x=j, dd=0;
        
while(x>0)
        
{
            Num hNum
=num[j-1];
            
for(i=0;i<dd;i++)
                hNum
=mul(hNum,10);
            hNum
=mul(hNum,x%10);
        
            num[j]
=add(num[j],hNum);

            dd
++;
            x
/=10;
        }

    }

/*
    while(scanf("%d",&j))
    {
        for(i=num[j].dig-1;i>=0;i--)
            printf("%d",num[j].n[i]);
        printf("\n");
    }
*/

    
int t;
    scanf(
"%d",&t);
    
while(t--)
    
{
        cnt
=0;
        scanf(
"%d%d",&n,&m);
        cal();
        printf(
"%d\n",cnt);
    }

    
return 0;
}