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


public class C {

	private static final String head = "Case #";

	public static void main(String[] args) {
        try{
            FileReader f = new FileReader(args[0]);
            BufferedReader b = new BufferedReader(f);
            String s;
            boolean ff = false;
            int c = 0;
            while((s = b.readLine())!=null){
            	if (!ff){ff=true;continue;}
            	else {
            		c++;
            		System.out.println(head + c + ": " + C.getI(s));
            	}
            }
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
        	
        }
	}
	
	private static int getI(final String line) {
		//System.out.print("TEST:"+line);
		int r = 0;
		int a,b;
		String[] sp = line.split(" ");
		a = Integer.valueOf(sp[0]);
		b = Integer.valueOf(sp[1]);
		//if (b < 10) return 0;
		//else if (a == b) return 0;
		//else {
			//if (a <= 10) {a = 11;}
			for (int x = a; x <= b; x++) {
				for (int y = 0; y < String.valueOf(x).length(); y++) {
					if (y != 0) {
						int re = C.getRR(x, y);
						if (re <= 11 || re >= x) {continue;}
						else {
							if (re >= a && re <= b) {
								//System.out.println("X:"+x+"T"+re);
								r++;		
							}
						}
					}
				}
			}
		//}
		return r;
	}
	private static Integer getRR(final int v, final int o) {
		StringBuilder sb = new StringBuilder();
		String str = String.valueOf(v);
		sb.append(str.substring(o));
		sb.append(str.substring(0, o));
		return Integer.valueOf(sb.toString());
	}
}
