package codejam;

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

public class RecycledNumbers {
	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new FileReader("in.txt"));
		PrintWriter out = new PrintWriter(new File("out.txt"));
		
		int T = Integer.parseInt(in.readLine());
		for (int t = 1; t <= T; ++t) {
			String[] parts = in.readLine().split("[ ]+");
			int A = Integer.parseInt(parts[0]);
			int B = Integer.parseInt(parts[1]);
			
			int cnt = 0;
			for (int i = A; i < B; ++i) {
				String str = String.valueOf(i);
				int n = str.length();
				String res = "";
				Set<Integer> seen = new HashSet<Integer>();
				for (int j = n - 1; j > 0; --j) {
					res = str.substring(j) + str.substring(0, j);
					int k = Integer.parseInt(res);
					if (k > i && k <= B) {
						//System.out.println("(" + i + ", " + k + ")");
						if (!seen.contains(k)) {
							++cnt;
							seen.add(k);
						}
					}
				}
			}

			out.println("Case #" + t + ": " + cnt);
		}
		
		in.close();
		out.close();
		System.exit(0);
	}
}

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;


public class RecycledNumber {
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new FileReader("C-small-attempt0.in"));
		BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"));		
		
		int inputlength = Integer.parseInt(br.readLine());
		String line = null;
		int casenum = 1;
		while( (line = br.readLine()) != null){
			String start = line.split(" ")[0];
			String end = line.split(" ")[1];			
			String output = "Case #"+casenum+": ";
			output += getRecycledNumber(start, end);			
			if(casenum!=inputlength) output+="\n";
			bw.write(output);			
			casenum++;
		}
		bw.close();		
		
	}
	
	public static int getRecycledNumber(String start, String end){
			
		int startnum = Integer.parseInt(start);
		int endnum = Integer.parseInt(end);
		int numofdigit = start.length();
		
		HashSet<String> hs = new HashSet<String>();		
		
		for(int i = startnum; i <=endnum ; i++){
			
			String source = String.valueOf(i);
			String rotated = String.valueOf(i);
			
			int numofrotation = 1;			
			while(numofrotation<numofdigit){				
				rotated = getRotatedString(rotated);								
				if(rotated.charAt(0) != '0' && !source.equals(rotated) && startnum <= Integer.parseInt(rotated) && Integer.parseInt(rotated) <= endnum){					
					if(source.compareTo(rotated)>0){
						hs.add(source+rotated);
					}else{
						hs.add(rotated+source);
					}							
				}				
				numofrotation++;
			}
			
		
		}
				
		return hs.size();
	}
	
	
	public static String getRotatedString(String source){		
		return source.substring(source.length()-1)+source.substring(0, source.length()-1);
	}
	
//	public static int getRecycledNumber2(String start, String end){
//		int startnum = Integer.parseInt(start);
//		int endnum = Integer.parseInt(end);
//		int numofdigit = start.length();
//		
//		int result =0;
//		
//		for (int i = startnum ; i <=endnum ; i++){			
//			for(int j = i+1 ; j <= endnum ; j++){
//				int numofrotation = 1;
//				while(numofrotation<numofdigit){
//					
//					if (j == Integer.parseInt(getRotatedString(String.valueOf(i)))){
//						result++;
//					}
//										
//					numofrotation++;
//				}
//				
//			}			
//		}
//				
//		return result;
//	}
	
}
