package fixjava;

public class StringUtils {

	/** Repeat the given string the requested number of times. */
	public static String repeat(String str, int numTimes) {
		StringBuilder buf = new StringBuilder(Math.max(0, str.length() * numTimes));
		for (int i = 0; i < numTimes; i++)
			buf.append(str);
		return buf.toString();
	}

	/**
	 * Pad the left hand side of a field with the given character. Always adds at least one pad character. If the length of str is
	 * greater than numPlaces-1, then the output string will be longer than numPlaces.
	 */
	public static String padLeft(String str, char padChar, int numPlaces) {
		int bufSize = Math.max(numPlaces, str.length() + 1);
		StringBuilder buf = new StringBuilder(Math.max(numPlaces, str.length() + 1));
		buf.append(padChar);
		for (int i = 1, mi = bufSize - str.length(); i < mi; i++)
			buf.append(padChar);
		buf.append(str);
		return buf.toString();
	}

	/**
	 * Pad the right hand side of a field with the given character. Always adds at least one pad character. If the length of str is
	 * greater than numPlaces-1, then the output string will be longer than numPlaces.
	 */
	public static String padRight(String str, char padChar, int numPlaces) {
		int bufSize = Math.max(numPlaces, str.length() + 1);
		StringBuilder buf = new StringBuilder(Math.max(numPlaces, str.length() + 1));
		buf.append(str);
		buf.append(padChar);
		while (buf.length() < bufSize)
			buf.append(padChar);
		return buf.toString();
	}

	/** Intern all strings in an array, skipping null elements. */
	public static String[] intern(String[] arr) {
		for (int i = 0; i < arr.length; i++)
			arr[i] = arr[i].intern();
		return arr;
	}

	/** Intern a string, ignoring null */
	public static String intern(String str) {
		return str == null ? null : str.intern();
	}

}

import java.io.*;
import java.util.LinkedList;
import java.util.StringTokenizer;

public class RecycledNumbers 
{
    public static void main(String[] args) 
    {
       StringTokenizer st;
       BufferedReader br = null;
 
		try {
                        FileWriter fstream = new FileWriter("output.out");
                        BufferedWriter out = new BufferedWriter(fstream);
			String sCurrentLine;
 
			br = new BufferedReader(new FileReader("C-small-attempt0.in"));
                        sCurrentLine = br.readLine();//no. of cases
                        int i = 1;
                        while ((sCurrentLine = br.readLine()) != null) 
                        {     
                            out.write("Case #" + i++ + ": ");
                            st = new StringTokenizer(sCurrentLine," ");
                            String n = st.nextToken();
                            int N = Integer.parseInt(n);
                            int m = Integer.parseInt(st.nextToken());
                            int count = 0;
                            for (int j = N; j < m; j++) 
                            {
                                String recycled = Integer.toString(j);
                                LinkedList<String> possible_rotations = new LinkedList<String>();
                                for (int k = 0; k < n.length(); k++)
                                {
                                    recycled = recycled.substring(1)+recycled.charAt(0);
                                    if(!possible_rotations.contains(recycled) && Integer.parseInt(recycled) > j && Integer.parseInt(recycled) <= m)
                                        count++;
                                    possible_rotations.addLast(recycled);
                                }
                            }
                            out.write(count + "\n");
                        }
                        out.close();
 
		} catch (IOException e) {
			e.getMessage();
		} finally {
			try {
				if (br != null)br.close();
			} catch (IOException ex) {
				ex.getMessage();
			}
		} 
    }
}
