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();
	}

}

import java.util.*;
import java.io.*;

public class qualC
{
	public static void main(String[] args) throws IOException
	{
		Scanner sin = new Scanner(new File("/Users/G/Documents/Programming/Java/CodeJam2012/C-large.in"));
		
		int t = sin.nextInt(), a, b;
		for(int i = 1; i <= t; ++i)
		{
			a = sin.nextInt();
			b = sin.nextInt();
			int ret = 0;
			
			for(long j = a; j <= b; ++j)
			{
				if(j >= 10)
				{
					int length = 0;
					long firstPosition, shift=j;
					for(firstPosition = 1; firstPosition <= shift; firstPosition*=10) length++;
					firstPosition /= 10;
					
					long[] numbers = new long[length];
					
					for(int k = 0; k < length; ++k)
					{
						long lastDigit = shift%10;
						shift /= 10;
						shift += firstPosition*lastDigit;
						
						numbers[k] = shift;
						boolean found = false;
						
						for(int m = 0; m < k; ++m)
						{
							if(shift == numbers[m])
							{
								found = true;
								break;
							}
						}
						
						if(shift >= a && shift <= b && j < shift && lastDigit != 0 && !found)
						{
							ret++;	
						}
					}	
				}
			}
			
			System.out.println("Case #"+i+": "+ret);
		}
	}
}
