/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package recyclednumbers;

import java.util.HashSet;

/**
 *
 * @author vandit
 */
public class RecycleNumbers {

    private HashSet<String> numbers = new HashSet<String>();
    private HashSet<String> initialTempNumbers = new HashSet<String>();
    private HashSet<String> finalTempNumbers = new HashSet<String>();

    HashSet<Pair> numberPairs = new HashSet<Pair>();


    private void findRecycledNumbers(int start, int end, int places) {


        for (int i = start; i <= end; i++) {
            String initialNumber = Integer.toString(i);
            //if (!(numbers.contains(initialNumber) || finalTempNumbers.contains(initialNumber))) {

                StringBuffer tempNumber = new StringBuffer(initialNumber);
                int len = tempNumber.length();
                int startIndexToMove = len - places;
                String tempString = tempNumber.substring(startIndexToMove);
                if ((places == 1 && tempString.equals("0")) || tempString.charAt(0) == '0') {
                    continue;
                }
                tempNumber.delete(startIndexToMove, len);
                String finalTempNumber = tempString + tempNumber.toString();

                if (! (finalTempNumber.equals(initialNumber) || Integer.parseInt(finalTempNumber) > end || Integer.parseInt(finalTempNumber) < Integer.parseInt(initialNumber))) {
                    numbers.add(initialNumber);
                    finalTempNumbers.add(finalTempNumber);
                    Pair pair = new Pair(finalTempNumber,initialNumber);
                    numberPairs.add(pair);
                }
            }

        

    }

    public HashSet<Pair> findAllRecycledNumbers(int start, int end) {
        int length = Integer.toString(start).length();
        for (int i = 1; i < length; i++) {
            findRecycledNumbers(start, end, i);
        }
        return numberPairs;
    }
}

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


public class ProblemC {

   Set<Long> recycled = new TreeSet<Long>();
    int count = 0;

    FileWriter fstream;
    BufferedWriter out;

    public static void main(String[] args) throws IOException {
        ProblemC p = new ProblemC();
        p.fstream = new FileWriter("outC.txt");
        p.out = new BufferedWriter(p.fstream);
        p.readFile("C-small-attempt0.in");
        p.out.close();
    }

    public void readFile(String filePath) {

        String[] result = null;

        try {
            FileReader input = new FileReader(filePath);
            BufferedReader bufRead = new BufferedReader(input);


            Scanner scan = new Scanner(input);

            this.count = scan.nextInt();


            for (int i = 0; i < count; i++) {
                int a = scan.nextInt();
                int b = scan.nextInt();
                out.write("Case #"+(i+1)+": "+calculate(a, b));
                if (i<count-1)
                    out.write("\n");
            }
            bufRead.close();
        } catch (IOException e) {
            e.printStackTrace();
        }



    }

    public int calculate(int a, int b) {
        recycled.clear();
        int count = 0;

        for (int i = a; i <= b; i++) {

            String num = String.valueOf(i);
            int d = num.length();
            for (int j = 1; j < num.length(); j++) {
                String newNum = num.substring(num.length() - j, num.length()) + num.substring(0, num.length() - j);
                if (newNum.charAt(0) != '0') {
                    int value = Integer.valueOf(newNum);
                    if ((value <= b) && (value >= a) && (value != i) && (!recycled.contains(Long.parseLong(num+newNum))) && (!recycled.contains(Long.parseLong(newNum+num))))  {
                        recycled.add(Long.parseLong(num + newNum));
                        recycled.add(Long.parseLong(num+newNum));
                        count++;
                    }

                }
            }
        }
        System.out.println(count);
        return count;
    }


}
