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 codejam;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.HashMap;
import java.util.Map;

public class RecycledNumbers {
	
	private StreamTokenizer in;
	private PrintWriter out;
	private Map<Integer, Integer> map = new HashMap<Integer, Integer>();
	//private Map<Pair, Integer> pair = new HashMap<Pair, Integer>();
	
	public static void main (String[] args) throws IOException {
		new RecycledNumbers().soilve();
	}
	
	int nextInt () throws IOException {
		in.nextToken();
		return (int)in.nval;
	}
	
	void soilve () throws IOException {
		in = new StreamTokenizer(new BufferedReader(new FileReader("./src/codejam/input.txt")));
		out = new PrintWriter(new FileWriter("./src/codejam/output.txt"));
		
		int t = nextInt();
		for (int i = 0; i < t; i++) {
			int cnt = 0;
			int a = nextInt();
			int b = nextInt();
			int len = Chain.getLen(a);
			for (int j = a; j <= b; j++) {
				cnt += check(a, b, j, len);
			}
			out.println("Case #" + (i + 1) + ": " + cnt);
		}
		
		out.flush();
	}
	
	int check(int a, int b, int q, int len) {
		//Chain chain = new Chain(q);
		if (map.containsKey(q)) {
			return map.get(q);
		}
		
		int first = q;
		int cnt = 0;
		for (int i = 1; i < len; i++) {
			int last = q % 10;
			q /= 10;
			q += last * (int)Math.pow(10, len - 1);
			if ((first < q) && (a <= q) && (q <= b)) {
				cnt++;
			}
		}
		
		map.put(first, cnt);
		return cnt;
	}
	
}

//class Pair {
//	int a, b;
//	
//	Pair(int a, int b) {
//		if (a < b) {
//			this.a = b;
//			this.b = a;
//		} else {
//			this.a = a;
//			this.b = b;
//		}
//	}
//	
//	@Override
//	public boolean equals(Object o) {
//		Pair p = (Pair)o;
//		return p.a == a && p.b == b;
//	}
//}

class Chain {
	
	int a;
	
	Chain(int a) {
		this.a = a;
	}
	
	@Override
	public boolean equals(Object b) {
		Chain c = (Chain)b;
		if (c.a == a) {
			return true;
		}
//		int lenC = getLen(c.a);
//		int lenA = getLen(a);
//		if (lenA != lenC) {
//			return false;
//		}
//		
//		if (lenA == 1) {
//			return a == c.a;
//		}
//		
//		for (int i = 1; i < lenA; i++) {
//			int last = c.a % 10;
//			c.a /= 10;
//			c.a += last * (int)Math.pow(10, lenA - 1);
//			if (c.a == a) {
//				return true;
//			}
//		}
//		
		return false;
	}
	
	public static int getLen (int a) {
		int i = 1;
		int len = 0;
		while (a / i != 0) {
			len++;
			i *= 10;
		}
		return len;
	}
	
}
