package jp.funnything.competition.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;

import org.apache.commons.io.IOUtils;

public class QuestionReader {
    private final BufferedReader _reader;

    public QuestionReader( final File input ) {
        try {
            _reader = new BufferedReader( new FileReader( input ) );
        } catch ( final FileNotFoundException e ) {
            throw new RuntimeException( e );
        }
    }

    public void close() {
        IOUtils.closeQuietly( _reader );
    }

    public String read() {
        try {
            return _reader.readLine();
        } catch ( final IOException e ) {
            throw new RuntimeException( e );
        }
    }

    public BigDecimal[] readBigDecimals() {
        return readBigDecimals( " " );
    }

    public BigDecimal[] readBigDecimals( final String separator ) {
        final String[] tokens = readTokens( separator );

        final BigDecimal[] values = new BigDecimal[ tokens.length ];
        for ( int index = 0 ; index < tokens.length ; index++ ) {
            values[ index ] = new BigDecimal( tokens[ index ] );
        }

        return values;
    }

    public BigInteger[] readBigInts() {
        return readBigInts( " " );
    }

    public BigInteger[] readBigInts( final String separator ) {
        final String[] tokens = readTokens( separator );

        final BigInteger[] values = new BigInteger[ tokens.length ];
        for ( int index = 0 ; index < tokens.length ; index++ ) {
            values[ index ] = new BigInteger( tokens[ index ] );
        }

        return values;
    }

    public int readInt() {
        final int[] values = readInts();

        if ( values.length != 1 ) {
            throw new IllegalStateException( "Try to read single interger, but the line contains zero or multiple values" );
        }

        return values[ 0 ];
    }

    public int[] readInts() {
        return readInts( " " );
    }

    public int[] readInts( final String separator ) {
        final String[] tokens = readTokens( separator );

        final int[] values = new int[ tokens.length ];
        for ( int index = 0 ; index < tokens.length ; index++ ) {
            values[ index ] = Integer.parseInt( tokens[ index ] );
        }

        return values;
    }

    public long readLong() {
        final long[] values = readLongs();

        if ( values.length != 1 ) {
            throw new IllegalStateException( "Try to read single interger, but the line contains zero or multiple values" );
        }

        return values[ 0 ];
    }

    public long[] readLongs() {
        return readLongs( " " );
    }

    public long[] readLongs( final String separator ) {
        final String[] tokens = readTokens( separator );

        final long[] values = new long[ tokens.length ];
        for ( int index = 0 ; index < tokens.length ; index++ ) {
            values[ index ] = Long.parseLong( tokens[ index ] );
        }

        return values;
    }

    public String[] readTokens() {
        return readTokens( " " );
    }

    public String[] readTokens( final String separator ) {
        return read().split( separator );
    }
}

import java.io.*;
import java.util.*;

public class RecycledNumbers {

    private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));    
    private static Scanner sc = new Scanner(br);

    public static void main ( String [] args ) throws IOException
    {
    	int N = Integer.parseInt(br.readLine());

		for(int i = 0;i < N; i++) {
			System.out.print("Case #" + (i+1) + ": ");
			new RecycledNumbers().cal();
		}
    }	



    private void cal() throws IOException 
    {
    	int A = sc.nextInt();
    	int B = sc.nextInt();
    	
    	String aString = Integer.toString(A);
    	int length = aString.length();
    	
    	String testString;
    	String testTemp;
    	int checkingNumber;
    	int counter = 0;
    	boolean check = false;
    	
    	
    	for(checkingNumber = A; checkingNumber < B; checkingNumber++ ){
        	int[] stack = new int[length-1];
    		testString = Integer.toString(checkingNumber);
    		check = true;
    		for(int i = 0; i < length-1; i++ ){
    		
    			testTemp = testString.substring(1, length) + testString.substring(0, 1);
    			testString = testTemp;
    		
    			if( checkingNumber < Integer.parseInt(testString)){
    				if( Integer.parseInt(testString) <= B ){
    					for(int k = 0; k < i; k++)
    						if( stack[k] == Integer.parseInt(testString) ) check = false;
    					if(check){
    						counter++;
    						//System.out.println(checkingNumber + " " + testString+ " "+ counter);
    						stack[i] = Integer.parseInt(testString);
    					}
    				}
    			}
    		}
    		
    		
    	}
    	
    	System.out.println(counter);
    	
    		
    }

}


