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.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;


public class MainJam2 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		
		BufferedReader in = new BufferedReader(new FileReader("C:\\Jam\\teste.txt"));
		File file = new File("C:\\Jam\\saida.txt");
		FileWriter print = new FileWriter(file);
		
		int i = Integer.parseInt(in.readLine());
		
		int k = i;
		
		while(i > 0){
			
			ArrayList<String> list = new ArrayList<String>();
			
			int resp = 0;
			String integer [] = in.readLine().split(" ");
			
			int ini = Integer.parseInt(integer[0]);
			int end = Integer.parseInt(integer[1]);
			
			for(int j = ini; j <= end; j++){
				
				String reverse = ""+j;
				String ini_reverse = reverse;
				
					do{
						String ini_s = reverse.substring(0, 1);
						reverse = reverse.substring(1, reverse.length()) + ini_s;
								
						int int_reverse = Integer.parseInt(reverse);
						
						if(reverse.equals(ini_reverse))
							break;
						
						if(int_reverse <= end && int_reverse >= ini && !list.contains(reverse)){
							System.out.println((k - i + 1)+" : "+reverse + " " + j);
							list.add(""+j);
							resp++;
						}
						
					}
					while(!reverse.equals(ini_reverse));
				
			}
			
			print.write("Case #"+ (k - i + 1) +": "+resp+System.getProperty("line.separator"));
			
			i--;
		}
		print.close();


	}

}
