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.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.HashSet;
import java.io.FileWriter;

public class RecyclingNumbers {
  public static void main(String... args) {
    RecyclingNumbers obj = new RecyclingNumbers();
    obj.run();
  }
  public void run() {
    
    try {
      File f = new File("C-small-attempt0.in");
      File outFile = new File("output.txt");
      FileWriter w = new FileWriter(outFile);
      Scanner s = new Scanner(f);
      int T = s.nextInt();
      s.nextLine();
      for(int i = 1; i<= T; i++) {
        int lower = s.nextInt();
        int upper = s.nextInt();
        int maxRecycled = findRecycled(lower, upper);
        String str = "Case #" + i +": " + maxRecycled + '\n';
        w.write(str);
        if(s.hasNextLine()) s.nextLine();
      }
      w.close();
    }
    catch(Exception e) {
      System.out.println(e.toString());
    }
  }
  private int findRecycled(int lower, int upper) {
    int recycled = 0;
    HashSet<Pair> set = new HashSet<Pair>();
    for(int n = lower; n <= upper; n++) {
      String current = (new Integer(n)).toString();
      for(int r = 0; r < current.length(); r++) {
        String check = current.substring(1) + current.charAt(0);
        int m = Integer.parseInt(check);
        if( lower <= n) {
          if(n < m) {
            if( m <= upper) {
              set.add(new Pair(n,m));
            }
          }
        }
        current = check;
      }
    }
    return set.size();
  }
  
  private class Pair {
    public int x, y;
    public Pair(int x, int y) {
      this.x = x;
      this.y = y;
    }
    public boolean equals(Object obj)
    {
      if(this == obj)
        return true;
      if((obj == null) || (obj.getClass() != this.getClass()))
        return false;
      Pair p = (Pair)obj;
      return x == p.x && y == p.y;
    }
    
    public int hashCode()
    {
      int hash = 7;
      hash = 31 * hash + x;
      hash = 31 * hash + y;
      return hash;
    }
  }
}
