package qual;

import java.util.Scanner;

public class RecycledNumbers {

	public static void main(String[] args) {
		new RecycledNumbers().run();

	}

	private void run() {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		for (int t = 0; t < T; t++) {
			int A = sc.nextInt();
			int B = sc.nextInt();
			int result = solve(A, B);
			System.out.printf("Case #%d: %d\n", t + 1, result);
		}
	}

	public int solve(int A, int B) {
		int result = 0;
		for (int i = A; i <= B; i++) {
			int dig = (int) Math.log10(A/*same as B*/) + 1;
			int aa = i;
			for (int d = 0; d < dig - 1; d++) {
				aa = (aa % 10) * (int)Math.pow(10, dig - 1) + (aa / 10);
				if (i == aa) {
					break;
				}
				if (i < aa && aa <= B) {
//					System.out.printf("(%d, %d) ", i, aa);
					result++;
				}
			}
		}
		return result;
	}

}

import java.util.*;

public class C {
    static int[] ten;

    static {
        ten = new int[10];
        ten[0] = 1;
        for (int i = 1; i < ten.length; ++i) {
            ten[i] = ten[i - 1] * 10;
        }
    }

    static int max(int x) {
        int n = 0;
        while (ten[n + 1] <= x) {
            ++n;
        }
        int y = x;
        for (int i = 0; i < n; ++i) {
            x = x / 10 + x % 10 * ten[n];
            y = Math.max(x, y);
        }
        return y;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int re = in.nextInt();
        int[] c = new int[10000000];
        for (int ri = 1; ri <= re; ++ri) {
            int a = in.nextInt();
            int b = in.nextInt();
            Arrays.fill(c, 0);
            for (int i = a; i <= b; ++i) {
                ++c[max(i)];
            }
            long s = 0;
            for (int i: c) {
                s += i * (i - 1) / 2;
            }
            System.out.println("Case #" + ri + ": " + s);
        }
    }
}

