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


public class GoogleCodeJam18 {   
    
    public static void main(String[] args) throws IOException {

        FileInputStream getFile = new FileInputStream("C:\\1\\in1.txt");

        PrintWriter out = new PrintWriter(new File("C:\\1\\output.out"));
        BufferedReader br = new BufferedReader(new InputStreamReader(getFile));

        String strLine;
        strLine = br.readLine().trim();
        int test = Integer.parseInt(strLine);

        for (int i=0;i<test;i++) {
            strLine = br.readLine().trim();
            long incrementor = 0;
            String[] strings = strLine.split(" ");
            long A = Integer.parseInt(strings[0].trim());
            long B = Integer.parseInt(strings[1].trim());
            for (long num = A; num <= B; num++) {
                incrementor = incrementor + CodeJadu(num, A, B);
            }
            int k = i+1;
            out.println("Case #" + k + ": " + incrementor);
        }
        out.flush();
        out.close();
        br.close();
    }
    public static long CodeJadu(long present, long A, long B)
    {
        long initial = present;
        long sum = 0;
        int numdigits = (int) Math.log10((double)present);
        int multiplier = (int) Math.pow(10.0, (double)numdigits);
        while(true)
        {
            long q = present / 10;
            long r = present % 10;
            present = present / 10;
            present = present + multiplier * r;
            if(present == initial)
                break;
            if (initial < A) break;
            if (initial >= A && initial < present && present <= B) {
                sum++;
            }
        }
        return sum;


    }
}