package Main;

import com.sun.deploy.util.ArrayUtil;
import org.apache.commons.lang3.ArrayUtils;

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;

/**
 * Created with IntelliJ IDEA.
 * User: arran
 * Date: 14/04/12
 * Time: 3:12 PM
 * To change this template use File | Settings | File Templates.
 */
public class Round {
    public StringBuilder parse(BufferedReader in) throws IOException {
        StringBuilder out = new StringBuilder();
        String lineCount = in.readLine();

        for (int i = 1; i <= Integer.parseInt(lineCount); i++)
        {
            out.append("Case #"+i+": ");
            System.err.println("Case #"+i+": ");
            String line = in.readLine();
            String[] splits = line.split(" ");
            int p1 = Integer.valueOf(splits[0]);
            int p2 = Integer.valueOf(splits[1]);
            int r = pairRecyclable(p1, p2);
            out.append(r);

//            if (i < Integer.parseInt(lineCount))
                out.append("\n");
        }
        return out;
    }

    public static int pairRecyclable(int i1, int i2) {
        HashSet<String> hash = new HashSet<String>();
        for (int i = i1; i < i2; i++)
        {
            String istr = String.valueOf(i);
            if (istr.length() < 2) continue;
            for (int p = 0; p < istr.length() ; p++)
            {
                String nistr = istr.substring(p,istr.length()).concat(istr.substring(0,p));
                if (Integer.valueOf(nistr) < i1) continue;
                if (Integer.valueOf(nistr) > i2) continue;
                if (nistr.equals(istr)) continue;
                String cnistr = (Integer.valueOf(nistr) > Integer.valueOf(istr)) ?  istr + "," + nistr : nistr + "," + istr;
                hash.add(cnistr);
            }
        }
        return hash.size();
    }

    public static void main(String[] args) {
        InputStreamReader converter = null;
        try {
            int attempt = 0;
            String quest = "C";
//            String size = "small-attempt";
            String size = "large";
            converter = new InputStreamReader(new FileInputStream("src/resource/"+quest+"-"+size+".in"));
            BufferedReader in = new BufferedReader(converter);
            Round r = new Round();
            String str = r.parse(in).toString();
            System.out.print(str);
            FileOutputStream fos = new FileOutputStream(quest+"-"+size+".out");
            OutputStreamWriter osw = new OutputStreamWriter(fos);
            BufferedWriter bw = new BufferedWriter(osw);
            bw.write(str);
            bw.flush();
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author vhd
 */
import java.io.*;
import java.util.*;
import java.math.*;
public class NewClass {
    public static void main(String vhd[]) throws Exception
    {
       
      

      
     // FileInputStream fis = new FileInputStream ("jam.txt");
     // FileOutputStream out=new FileOutputStream("outt.txt");
     
        RandomAccessFile file = new RandomAccessFile("jam.txt", "rw");
        RandomAccessFile file1 = new RandomAccessFile("outt.txt", "rw");
        String t = file.readLine();
        int times= Integer.parseInt(t);

        
        
        for( int r= 1 ; r<= times ; r++)
        {
     
            StringTokenizer st= new StringTokenizer(file.readLine()); 
       
        int num1 = Integer.parseInt(st.nextToken());
        int num2=   Integer.parseInt(st.nextToken());
        
      char ch ;
      int count =0;
      //fis.read();
      Scanner sc = new Scanner (System.in);
      
      
      int main1 = num1;
      
      int main2= num2;
      int mid = (num1 + num2 )/2;
      int n,m;
     String s1 = (Integer.valueOf(num1)).toString();
     String s2 = (Integer.valueOf(num2)).toString();
    
     int temp[] = new int[100];
     
     int len1 = s1.length();
     int len2 = s2.length();
     int k =0,l =0, d=0;
     int arr[] = new int[100];
     int flag=1;
    // System.out.print(temp.length);
      for( int i = num1 ; i< num2 ; i++)
      {
          while(k<len1)
             {
                 n= i%10;
                 m= i/10;
                 arr[k]=n* (int)Math.pow(10.0, len1-1) +m;

                
                      
                 i= arr[k++];

             } k=0;
         
         while(k<len1)
         {
          
            if(i != arr[k] && arr[k]>i && arr[k]<=num2 && flag == 1)
              {
                  temp[d++]= arr[k];
                  count++;
                  
              } 
              else if (flag == 0)
              flag=1;
            
            
             for(int p=0 ; p<d; p++)
             {
                 if(arr[k+1]== temp [p])
                 {  System.out.print(temp[p]);
                     flag=0;
                 }
             }
             k++;
         }
         k=0;
          d=0;
      }
     
file1.write(("Case #"+r+": " +count+ "\n").getBytes());
               
        }
    }
}