#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int main(){
freopen("d://uva_in.txt","r",stdin);
int n;
scanf("%d",&n);
while(n--){
int arrayk[10]={6,2,5,5,4,5,6,3,7,6};
int theTime;
scanf("%d",&theTime);
int kv;
scanf("%d",&kv);
int year=theTime/10000;
int month=theTime/100%100;
int day=theTime%100;
int currentNum=0;
for(int i=0;i<8;i++){
currentNum+=arrayk[theTime%10];
theTime/=10;
}
int result=currentNum;
long long res=-1;
bool flag=false;
for(int z=year+1;z<=2999;z++){
if(flag)break;
int j=month+1;
if(z!=year+1)
j=2;
int endI=0;
for(;j<=12;j++){
if(flag)break;
if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
endI=31;
else if(j==4||j==6||j==9||j==11)
endI=31;
else{
if(z%4==0)
endI=28;
else
endI=29;
}
int i=day+1;
if(j!=month+1)
i=2;
for(;i<=endI;i++){
result=result+arrayk[i%10]+arrayk[i/10%10]-arrayk[(i-1)/10%10]-arrayk[(i-1)%10];
if(result==kv){
flag=true;
break;
}
res++;
}result=result+arrayk[0]+arrayk[1]-arrayk[(endI)/10%10]-arrayk[(endI)%10];//日变成01
result=result+arrayk[j%10]+arrayk[j/10%10]-arrayk[(j-1)/10%10]-arrayk[(j-1)%10];
if(result==kv){
flag=true;
break;
}
res++;
}
result=result+arrayk[0]+arrayk[1]-arrayk[(endI)/10%10]-arrayk[(endI)%10];//日变成01
result=result+arrayk[0]+arrayk[1]-arrayk[(12)/10%10]-arrayk[(12)%10];//月变成01
if(result==kv){
flag=true;
break;
}
result=result+arrayk[z/100%10]+arrayk[z/10%10]+arrayk[z%10]-arrayk[(j-1)/10%10]-arrayk[(j-1)%10]-arrayk[(j-1)/100%10];
res++;
}
//345908
printf("%lld\n",res);
}
}