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


public class Main {

	
	public static void main(String[] args) {
		int a,b,t;
		
		  Scanner odczyt = new Scanner(System.in); //obiekt do odebrania danych od uÅ¼ytkownika
		  boolean []tab=new boolean [2000000];
		  t = odczyt.nextInt();
		  for (int i=1; i<=t;i++)
		  {
			  a=odczyt.nextInt();
			  b=odczyt.nextInt();
			  String liczba;
			  String zmiana;
			  int nowa;
			  int ile=0;
			  int poprzedni=-1;
			  for (int j=a;j<=b;j++)
			  {
				  tab[j]=true;  
				  
			  }
			  for (int j=a; j<=b;j++)
			  {
				  
					  liczba=Integer.toString(j);
					  for (int k=1;k<liczba.length();k++)					  
					  {
						  zmiana=liczba.substring(k)+liczba.substring(0, k);
						//System.out.print(Integer.parseInt("012")+'\n');
						  nowa=Integer.parseInt(zmiana);
						 
						  if ( nowa>j && nowa>=a && nowa <=b && tab[nowa] && nowa!=poprzedni)
						  {
							  ile++;
							  tab[j]=false;
							 poprzedni=nowa;
							  //System.out.print(j+" "+nowa+"\n");
						  }
						  
						  
					 
					  
					  
					  
					  
					  
				  }				  
			  }
			  
			  
			  
			  
			  System.out.print("Case #"+i+": "+ile+'\n');
			  
		  }

		  
		
	}

}
