# https://yukicoder.me/problems/no/3549 from collections import deque def solve2(R): r_str = str(R) r_len = len(r_str) max_pre_digit = 0 answer = 0 for i in range(r_len): r = int(r_str[i]) if i < r_len - 1: l0 = r_len - 1 - i for l in range(r): rate = 1 value = max(max_pre_digit, l, 0) answer += rate * value for k in range(1, 10): rate = (k + 1) ** l0 - k ** l0 value = max(max_pre_digit, l, k) answer += rate * value else: for l in range(r + 1): value = max(max_pre_digit, l) answer += value max_pre_digit = max(max_pre_digit, r) return answer l = r_len - 1 if l > 0: for k in range(1, 10): answer += (k + 1) def solve(L, R): ans1 = solve2(R) if L > 0: ans1 -= solve2(L - 1) return ans1 def main(): T = int(input()) answers = [] for _ in range(T): L, R = map(int ,input().split()) ans = solve(L, R) answers.append(ans) for ans in answers: print(ans) if __name__ == "__main__": main()