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.util.*;

public class Recycle
{
    public static void main(String args[])
    {
        int uBound, lBound, count=0, caseNo=1;

        Scanner input = new Scanner(System.in);

        input.nextLine();

        while(true)
        {
            lBound = input.nextInt();
            uBound = input.nextInt();

            for(int i=lBound; i<=uBound; i++)
            {
                int numDigits = new Integer(i).toString().length();
                int[] pastPairs = new int[numDigits-1];
                for(int j=1; j<numDigits; j++)
                {
                    int rotatedInt = rotateInt(i,j);
                    if(rotatedInt>i && rotatedInt<=uBound)
                    {
                        for(int k=0; k<numDigits-1; k++)
                        {
                            if(rotatedInt==pastPairs[k])
                            {
                                count--;
                            }
                        }
                        count++;
                    }
                    pastPairs[j-1] = rotatedInt;
                }
            }
            System.out.printf("Case #%d: %d\n",caseNo,count);
            count=0; caseNo++;
        }
    }

    static int rotateInt(int number, int rotate)
    {
        String numStr = new Integer(number).toString();
        String last = numStr.substring(numStr.length()-rotate);
        String rest = numStr.substring(0,numStr.length()-rotate);
        numStr = last.concat(rest);
        return Integer.parseInt(numStr);
    }
}

// Called with java Recycle < in.in > out.txt
