import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Recycled {
	public static void main(String[] args) throws Exception{
		String inputFile = "C-small-attempt0.in";
		
		BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile)));
		BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output")));
		long num_cases = Long.parseLong(input.readLine());
		int current_case = 0;
		
		while (current_case < num_cases){
			current_case++;
			
			String[] fields = input.readLine().split(" ");
			int A = Integer.parseInt(fields[0]);
			int B = Integer.parseInt(fields[1]);
			int total = 0;
			
			for (int n = A; n < B; n++){
				for (int m = n+1; m <= B; m++){
					if (isRecycled(n,m)) total++;
				}
			}
			
			System.out.println("Case #" + current_case + ": " + total);
			output.write("Case #" + current_case + ": " + total + "\n");
		}
		output.close();
	}

	private static boolean isRecycled(int n, int m) {
		String sn = ""+n;
		String sm = ""+m;
		if (sn.length() != sm.length()) return false;
		int totaln = 0, totalm = 0;
		for (int i = 0; i < sn.length(); i++){
			totaln += sn.charAt(i);
			totalm += sm.charAt(i);
		}
		if (totaln != totalm) return false;
		for (int i = 0; i < sn.length()-1; i++){
			sm = sm.charAt(sm.length() - 1) + sm.substring(0, sm.length() - 1);
			if (sm.equals(sn)) return true;
		}
		return false;
	}
}

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


public class RecycledNumbers {
  public RecycledNumbers() { }

  public int solve(String str) {
    String[] tokens = str.split(" ");
    int length = tokens[0].length();
    int a = Integer.valueOf(tokens[0]);
    int b = Integer.valueOf(tokens[1]);
    return solve(a, b, length);
  }
  public int solve(int a, int b, int length) {
    Set<String> rPairs = new HashSet<String>();
    StringBuffer strBuffer = new StringBuffer();
    for (int n = a; n < b; ++n) {
      int shiftNum = n;
      for (int i = 0; i < length; ++i) {
        shiftNum = calcShiftNum(shiftNum, length);

        if (shiftNum <= b && shiftNum > n) {
          strBuffer.setLength(0);
          strBuffer.append("(").append(n).append(", ").append(shiftNum).append(")");
          String result = strBuffer.toString();
          rPairs.add(result);
        }
      }
    }
    return rPairs.size();
  }

  public int calcShiftNum(int num, int length) {
    int maxUnit = Double.valueOf(Math.pow(10, length - 1)).intValue();
    int remainder = num % 10;
    return (remainder * maxUnit) + (num / 10);
  }

  public static void main(String[] args) throws IOException {
    RecycledNumbers solver = new RecycledNumbers();
    //System.out.println(solver.solve("100 500"));
    File folder = new File(".");
    for (File f : folder.listFiles()) {
      if (!f.getName().endsWith("in") || !f.isFile()) {
        continue;
      }
      System.out.println(f.getName());
      String outFileName = f.getName().replace("in", "out");

      BufferedReader reader = new BufferedReader(new FileReader(f));
      String str;
      int lineNum = 0, caseNum = 1;
      BufferedWriter writer = new BufferedWriter(new FileWriter(outFileName));
      lineNum = Integer.valueOf(reader.readLine());
      while ((str = reader.readLine()) != null) {
        str = str.trim();
        writer.write(String.format("Case #%d: %d\n", caseNum++, solver.solve(str)));
      }
      if (lineNum != caseNum - 1) {
        System.err.println("Case Number is not matched to input file.");
      }
      writer.flush();
      writer.close();
    }

  }

}
