package jp.funnything.competition.util;

import java.math.BigInteger;

/**
 * Utility for BigInteger
 */
public class BI {
    public static BigInteger ZERO = BigInteger.ZERO;
    public static BigInteger ONE = BigInteger.ONE;

    public static BigInteger add( final BigInteger x , final BigInteger y ) {
        return x.add( y );
    }

    public static BigInteger add( final BigInteger x , final long y ) {
        return add( x , v( y ) );
    }

    public static BigInteger add( final long x , final BigInteger y ) {
        return add( v( x ) , y );
    }

    public static int cmp( final BigInteger x , final BigInteger y ) {
        return x.compareTo( y );
    }

    public static int cmp( final BigInteger x , final long y ) {
        return cmp( x , v( y ) );
    }

    public static int cmp( final long x , final BigInteger y ) {
        return cmp( v( x ) , y );
    }

    public static BigInteger div( final BigInteger x , final BigInteger y ) {
        return x.divide( y );
    }

    public static BigInteger div( final BigInteger x , final long y ) {
        return div( x , v( y ) );
    }

    public static BigInteger div( final long x , final BigInteger y ) {
        return div( v( x ) , y );
    }

    public static BigInteger mod( final BigInteger x , final BigInteger y ) {
        return x.mod( y );
    }

    public static BigInteger mod( final BigInteger x , final long y ) {
        return mod( x , v( y ) );
    }

    public static BigInteger mod( final long x , final BigInteger y ) {
        return mod( v( x ) , y );
    }

    public static BigInteger mul( final BigInteger x , final BigInteger y ) {
        return x.multiply( y );
    }

    public static BigInteger mul( final BigInteger x , final long y ) {
        return mul( x , v( y ) );
    }

    public static BigInteger mul( final long x , final BigInteger y ) {
        return mul( v( x ) , y );
    }

    public static BigInteger sub( final BigInteger x , final BigInteger y ) {
        return x.subtract( y );
    }

    public static BigInteger sub( final BigInteger x , final long y ) {
        return sub( x , v( y ) );
    }

    public static BigInteger sub( final long x , final BigInteger y ) {
        return sub( v( x ) , y );
    }

    public static BigInteger v( final long value ) {
        return BigInteger.valueOf( value );
    }
}


/**
 *
 *
 * @Author      :Yasith Maduranga(Merlin)
 * @version     :1.0
 * @Date        :2012/4/14
 * @Copyright GSharp Lab, All Rights Reserved....
 */
import java.io.*;
import java.util.*;

class recyclednumbers {
	public static void main(String args[]){
		try{
	    	BufferedReader br = new BufferedReader(new FileReader("C-small-attempt0.in"));
	    	PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("C-small-attempt0.out")));

	    	int noOfCases = Integer.parseInt(br.readLine());

	    	for(int i=0;i<noOfCases;i++){
	    		String tmp[]=br.readLine().split(" ");
	    		long a=Long.parseLong(tmp[0]);
	    		long b=Long.parseLong(tmp[1]);
	    		long pairOfNo=0;
	    		ArrayList<Long> myArray=new ArrayList<Long>();
	    		myArray.add(a);

	    		for(long j=a;j<b+1;j++){
					long charLength=String.valueOf(j).length();
					if(charLength<=1){
						break;
					}
					for(long k=0;k<charLength-1;k++){
						String tmp1=String.valueOf(j).substring(0,(int)k+1);
						String tmp2=String.valueOf(j).substring((int)k+1);
						String newNo=tmp2+tmp1;
						if(Long.parseLong(newNo)<=b){
							if(!(Long.parseLong(newNo)==j)){
								if(!(Long.parseLong(newNo)<=j)){
									boolean isRepeated=true;
									for(long l=0;l<myArray.size();l++){
										if(myArray.get((int)l)==Long.parseLong(newNo)){
											isRepeated=true;
										}else{
											isRepeated=false;
										}
									}
									if(!isRepeated){
										pairOfNo++;
										myArray.add(Long.parseLong(newNo));
									}

								}
							}
						}
					}
	    		}
				out.println("Case #"+(i+1)+": "+pairOfNo);
	    	}



	    	out.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	    	System.exit(0);
	}
}
