from collections import defaultdict T = int(input()) for _ in range(T): L,R = input().split() L = str(int(L)-1) L_keta,R_keta = len(L), len(R) memo_f = defaultdict(int) def f(n, MAX, giri): if(n == R_keta):return MAX if((n,MAX,giri) in memo_f):return memo_f[(n,MAX,giri)] ret = 0 if(giri): for i in range(int(R[n])+1): ret += f(n+1, max(MAX, i), int(R[n]) == i) else: for i in range(10): ret += f(n+1, max(MAX, i), False) memo_f[(n,MAX,giri)] = ret return ret memo_g = defaultdict(int) def g(n, MAX, giri): if(n == L_keta):return MAX if((n,MAX,giri) in memo_g):return memo_g[(n,MAX,giri)] ret = 0 if(giri): for i in range(int(L[n])+1): ret += g(n+1, max(MAX, i), int(L[n]) == i) else: for i in range(10): ret += g(n+1, max(MAX, i), False) memo_g[(n,MAX,giri)] = ret return ret print(f(0,0,True) - g(0,0,True))