package fixjava;

public class StringUtils {

	/** Repeat the given string the requested number of times. */
	public static String repeat(String str, int numTimes) {
		StringBuilder buf = new StringBuilder(Math.max(0, str.length() * numTimes));
		for (int i = 0; i < numTimes; i++)
			buf.append(str);
		return buf.toString();
	}

	/**
	 * Pad the left hand side of a field with the given character. Always adds at least one pad character. If the length of str is
	 * greater than numPlaces-1, then the output string will be longer than numPlaces.
	 */
	public static String padLeft(String str, char padChar, int numPlaces) {
		int bufSize = Math.max(numPlaces, str.length() + 1);
		StringBuilder buf = new StringBuilder(Math.max(numPlaces, str.length() + 1));
		buf.append(padChar);
		for (int i = 1, mi = bufSize - str.length(); i < mi; i++)
			buf.append(padChar);
		buf.append(str);
		return buf.toString();
	}

	/**
	 * Pad the right hand side of a field with the given character. Always adds at least one pad character. If the length of str is
	 * greater than numPlaces-1, then the output string will be longer than numPlaces.
	 */
	public static String padRight(String str, char padChar, int numPlaces) {
		int bufSize = Math.max(numPlaces, str.length() + 1);
		StringBuilder buf = new StringBuilder(Math.max(numPlaces, str.length() + 1));
		buf.append(str);
		buf.append(padChar);
		while (buf.length() < bufSize)
			buf.append(padChar);
		return buf.toString();
	}

	/** Intern all strings in an array, skipping null elements. */
	public static String[] intern(String[] arr) {
		for (int i = 0; i < arr.length; i++)
			arr[i] = arr[i].intern();
		return arr;
	}

	/** Intern a string, ignoring null */
	public static String intern(String str) {
		return str == null ? null : str.intern();
	}

}

package qualification_2012;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;

public class PC {
	static Scanner sc = new Scanner(System.in);
	static PrintWriter pw = new PrintWriter(System.out);

	public static void main(String[] args) {
		int n = sc.nextInt();
		for (int i = 1; i <= n; i++) {
			int a = sc.nextInt();
			int b = sc.nextInt();
			pw.println("Case #" + i + ": " + calculate(a, b));
		}
		pw.flush();
	}

	static long calculate(int a, int b) {
		long result = 0;

		for (int j = a; j < b; j++) {
			result += count(j, b);
		}
		return result;
	}

	static int count(int n, int max) {
		String str = n + "";
		int m = str.length();
		int result = 0;
		ArrayList<Integer> store = new ArrayList<Integer>();
		for (int i = 1; i < m; i++) {
			int b1 = (int) Math.pow(10, i);
			int b2 = (int) Math.pow(10, m - i);
			int x = (n % b1) * b2 + n / b1;
			if (x > n && x <= max && !store.contains(x)) {
				store.add(x);
				result++;
			}
		}

//		if (result > 0)
//			pw.println(n + " " + result);
		return result;
	}
}
