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.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;

public class C {
	static int[] tens = { 1, 10, 100, 1000, 10000, 100000, 1000000 };

	static HashSet<Integer> set = new HashSet<Integer>();

	static private int countPairs(int a, int max, int len) {
		int rhs, lhs, num;
		set.clear();
		int res = 0;
		for (int i = 1; i < len; i++) {
			lhs = a % tens[i];
			rhs = a / tens[i];
			if (lhs == 0)
				continue;
			num = lhs * tens[len - i] + rhs;
			if (set.contains(num))
				continue;

			if (a < num && num <= max) {
				res++;
				set.add(num);
			}
		}
		return res;
	}

	static private int numberLength(int n) {
		int len = Arrays.binarySearch(tens, n);
		if (len < 0)
			len = ~len;
		else
			len++;
		return len;
	}

	public static void main(String[] args) throws IOException {
		Scanner in = new Scanner(new FileInputStream("C-small-attempt0.in"));
		FileWriter out = new FileWriter(new File("C-small-attempt0.out"));
		int t = in.nextInt(),cnt = 1;
		while (t-->0) {
			int a = in.nextInt(), b = in.nextInt();
			int tmp = 0;
			for (int i = a; i <= b; i++)
				tmp += countPairs(i, b, numberLength(i));
			out.write("Case #" + cnt++ + ": " + tmp+"\n");
		}
		in.close();
		out.close();
	}
}
