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.*;
import java.util.*;

public class RecycledNumbers {
	public static void main(String... args) throws Exception {

		BufferedReader br = new BufferedReader(
		new FileReader(System.getProperty("user.home") + "/Desktop/csmall.in")
		//new InputStreamReader(System.in)
		);

		int times = Integer.parseInt(br.readLine());

		for (int i = 0; i < times; i++) {
			numbers(br.readLine(), i+1);
		}

	}

	public static void numbers(String data, int num) {
		int a = Integer.parseInt(data.split(" ")[0]);
		int b = Integer.parseInt(data.split(" ")[1]);
		int count = 0;
		
		for (int n = a; n < b; n++) {
			String nn = n+"";
			for (int m = n+1; m <= b; m++) {
				String mm = m+"";
				if (nn.length() != mm.length()) {continue;}
				
				boolean check = false;
				for (int i = mm.length() - 1; i >= 0; i--) {
					String news = mm.substring(i);
					String newst = news + mm.substring(0, i);
					check = check(nn, newst);
					if (check) {
						count++;
						break;
					}
				}
				
			}
		}
		
		System.out.println("Case #" + num + ": " + count);
	}
	
	public static boolean check(String a, String b) {
		a = Integer.parseInt(a) + "";
		b = Integer.parseInt(b) + "";
		
		if (a.equals(b) || a.length() != b.length()) {
			return false;
		}
		
		String end = "";
		
		for (int i = b.length(); i >= 0; i--) {
			String first = b.substring(i);
			end = first + b.substring(0, i);
			
			if (a.equals(end)) {
				return true;
			}
		}
		
		return false;
	}
}
