import java.io.*;

class code1
{
	public static void main(String args[]) throws Exception 
	{
		File ii = new File ("C-small-attempt1.in");
		FileInputStream fis = new FileInputStream(ii);
		BufferedReader  br = new BufferedReader(new InputStreamReader (fis));
		int cases = Integer.parseInt(br.readLine());
		FileOutputStream fout = new FileOutputStream ("output.txt");
		DataOutputStream dout = new DataOutputStream (fout);
		int total=0;
		for(int i=0;i<cases;i++){
		String temp = br.readLine();
		String parts [] = temp.split(" ");
		int lower = Integer.parseInt(parts[0]);
		int upper = Integer.parseInt(parts[1]);
		System.out.println(lower+" "+upper);
		
		for(int j=lower;j<=upper;j++)
		{
			int abc = j;int length=0;
			if(j<10)continue;
			while (abc!=0){abc/=10;length++;}
			abc=j;
			for(int m=0;m<length-1;m++){
				int shift = abc%10;
				abc=abc/10;
				System.out.println("hi "+j);
				abc=abc+shift*power(10,length-1);
				if(abc<=upper&&shift!=0&&abc>j)total++;
				System.out.println(total);
			}
		}
 		dout.writeBytes("Case #"+(i+1)+ ": "+total+"\n");
 		total=0;
		}//for close
		
	}

	private static int power(int i, int j) {
		int no=1;
		for(int a=0;a<j;a++){no=10*no;}
		return no;
	}
}
import java.awt.Point;
import java.io.File;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class C {
	public static Set<Point> set;

	public static void main(String[] args) throws Exception {
		Scanner in = new Scanner(new File("input.in"));
		int n, a, b;
		int ans;
		n = in.nextInt();

		for (int tc = 1; tc <= n; tc++) {
			a = in.nextInt();
			b = in.nextInt();
			set = new HashSet<Point>();
			ans = finder(a, b) / 2;
			System.out.println("Case #" + tc + ": " + set.size() / 2);
			// System.out.println();
		}

	}

	public static int finder(int a, int b) {
		int temp;
		int ans = 0;
		for (int i = a; i <= b; i++) {
			for (int j = 1;; j++) {
				temp = moveDigits(i, j);
				if (temp == -1)
					break;
				if (temp != i && temp >= a && temp <= b) {
					// System.out.println("Output :" + i + "  " + temp);
					set.add(new Point(i, temp));
					ans++;
				}
			}

		}
		return ans;
	}

	public static int moveDigits(int num, int moveBy) {
		String s = Integer.toString(num);
		int size = s.length();
		if (moveBy >= s.length())
			return -1;
		s = s.substring(moveBy) + s.substring(0, moveBy);
		if (Integer.toString((Integer.parseInt(s))).length() != size)
			return 0;
		return Integer.parseInt(s);
	}

}
