from functools import cache
t = int(input())
for i in range(t):
lst = input().split(" ")
l = lst[0]
r = lst[1]
dic = {}
@cache
def f(i, flag, even, odd, nums):
if (i >= len(nums)):
if ((odd-even) == 1):
return 1
return 0
take = 0
if (i % 2 != 0):
if(flag==True):
for j in range(10):
take += f(i+1, True, even, odd+j, nums)
else:
for j in range(int(nums[i])):
take+=f(i+1, True, even, odd+j, nums)
take+=f(i+1, flag, even, odd+int(nums[i]), nums)
else:
if(flag==True):
for j in range(10):
take += f(i+1, True, even+j, odd, nums)
else:
for j in range(int(nums[i])):
take+=f(i+1, True, even+j, odd, nums)
take+=f(i+1, flag, even+int(nums[i]), odd, nums)
return take
val1 = f(0, False, 0, 0, str(int(l)-1))
val2 = f(0,False, 0, 0, r)
val2 -= val1
print(val2)
ZnJvbSBmdW5jdG9vbHMgaW1wb3J0IGNhY2hlCnQgPSBpbnQoaW5wdXQoKSkKZm9yIGkgaW4gcmFuZ2UodCk6CiAgICBsc3QgPSBpbnB1dCgpLnNwbGl0KCIgIikKICAgIGwgPSBsc3RbMF0KICAgIHIgPSBsc3RbMV0KICAgIGRpYyA9IHt9CiAgICBAY2FjaGUKICAgIGRlZiBmKGksIGZsYWcsIGV2ZW4sIG9kZCwgbnVtcyk6CiAgICAgICAgaWYgKGkgPj0gbGVuKG51bXMpKToKICAgICAgICAgICAgaWYgKChvZGQtZXZlbikgPT0gMSk6CiAgICAgICAgICAgICAgICByZXR1cm4gMQogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIHRha2UgPSAwCiAgICAgICAgaWYgKGkgJSAyICE9IDApOgogICAgICAgICAgICBpZihmbGFnPT1UcnVlKToKICAgICAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKDEwKToKICAgICAgICAgICAgICAgICAgICB0YWtlICs9IGYoaSsxLCBUcnVlLCBldmVuLCBvZGQraiwgbnVtcykKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGludChudW1zW2ldKSk6CiAgICAgICAgICAgICAgICAgICAgdGFrZSs9ZihpKzEsIFRydWUsIGV2ZW4sIG9kZCtqLCBudW1zKQogICAgICAgICAgICAgICAgdGFrZSs9ZihpKzEsIGZsYWcsIGV2ZW4sIG9kZCtpbnQobnVtc1tpXSksIG51bXMpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgaWYoZmxhZz09VHJ1ZSk6CiAgICAgICAgICAgICAgICBmb3IgaiBpbiByYW5nZSgxMCk6CiAgICAgICAgICAgICAgICAgICAgdGFrZSArPSBmKGkrMSwgVHJ1ZSwgZXZlbitqLCBvZGQsIG51bXMpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBmb3IgaiBpbiByYW5nZShpbnQobnVtc1tpXSkpOgogICAgICAgICAgICAgICAgICAgIHRha2UrPWYoaSsxLCBUcnVlLCBldmVuK2osIG9kZCwgbnVtcykKICAgICAgICAgICAgICAgIHRha2UrPWYoaSsxLCBmbGFnLCBldmVuK2ludChudW1zW2ldKSwgb2RkLCBudW1zKQogICAgICAgIHJldHVybiB0YWtlCiAgICB2YWwxID0gZigwLCBGYWxzZSwgMCwgMCwgc3RyKGludChsKS0xKSkKICAgIHZhbDIgPSBmKDAsRmFsc2UsIDAsIDAsIHIpCiAgICB2YWwyIC09IHZhbDEKICAgIHByaW50KHZhbDIpCg==