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 );
    }
}

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Hashtable;



public class Recycled_Numbers {
	public static void main(String[] args) throws IOException {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String x=reader.readLine();
long cases=Long.parseLong(x);
Hashtable <Long,Long>hash=new Hashtable<Long, Long>();
String input="";
long a=0;
String result="";
long b=0;
long i=a;
String temp="";
String ctemp="";
long counter=0;
String []array;
for(int j=0;j<cases;j++){
	input=reader.readLine();
	array=input.split(" ");
	a=Long.parseLong(array[0]);
	b=Long.parseLong(array[1]);
	i=a;
	 temp="";
	ctemp="";
	counter=0;
while(i<=b){
temp=i+"";
hash.clear();
for(int k=1;k<temp.length();k++){
ctemp=temp.substring(k,temp.length())+temp.substring(0,k);	
if((i<Long.parseLong(ctemp))&&(Long.parseLong(ctemp)<=b)){
	if(hash.get(Long.parseLong(ctemp))==null){
	hash.put(Long.parseLong(ctemp), Long.parseLong(ctemp));
	counter++;
	}
}
}
i++;
}
result+="Case #"+(j+1)+": "+counter+"\n";
}
System.out.println(result);
}
}