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

package codejam;

import java.io.*;
import java.util.HashSet;
public class Numb {
    public static void main(String[] args)throws IOException{
        HashSet<Integer> hs;
        BufferedReader cin=new BufferedReader(new FileReader("i3.in"));
        PrintWriter cout=new PrintWriter(new BufferedWriter(new FileWriter("out3.txt")));
        String[] in;
        int x,y,j,num,count;
        int t=Integer.parseInt(cin.readLine());
        for(int i=0;i<t;i++){
            count=0;
            in=cin.readLine().split(" ");
            x=Integer.parseInt(in[0]);
            y=Integer.parseInt(in[1]);
            if(y<10){ cout.println("Case #"+(i+1)+": 0");continue;}
            for(j=x;j<=y;j++){
                hs=new HashSet<Integer>();
                    String s=Integer.toString(j);
                    int l=s.length();
                    for(int k=l-1;k>0;k--){
                        if(s.charAt(k)=='0') continue;
                        num=Integer.parseInt(s.substring(k)+s.substring(0,k));
                        if(num>j && num<=y && !hs.contains(num)){
                            hs.add(num);
                            count++;
                        }
                    }
            }
            cout.println("Case #"+(i+1)+": "+count);
        }
        cout.flush();
    }
}
