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

/**
 *
 * @author eblanco
 */
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import javax.swing.JFileChooser;

public class RecycledNumbers {

    public static String DatosArchivo[] = new String[10000];

    public static int[] convertStringArraytoIntArray(String[] sarray) throws Exception {
        if (sarray != null) {
            int intarray[] = new int[sarray.length];
            for (int i = 0; i < sarray.length; i++) {
                intarray[i] = Integer.parseInt(sarray[i]);
            }
            return intarray;
        }
        return null;
    }

    public static boolean CargarArchivo(String arch) throws FileNotFoundException, IOException {
        FileInputStream arch1;
        DataInputStream arch2;
        String linea;
        int i = 0;

        if (arch == null) {
            //frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            JFileChooser fc = new JFileChooser(System.getProperty("user.dir"));
            int rc = fc.showDialog(null, "Select a File");
            if (rc == JFileChooser.APPROVE_OPTION) {
                arch = fc.getSelectedFile().getAbsolutePath();
            } else {
                System.out.println("No hay nombre de archivo..Yo!");
                return false;
            }
        }
        arch1 = new FileInputStream(arch);
        arch2 = new DataInputStream(arch1);
        do {
            linea = arch2.readLine();
            DatosArchivo[i++] = linea;
            /* if (linea != null) {
            System.out.println(linea);
            }*/
        } while (linea != null);
        arch1.close();
        return true;
    }

    public static boolean GuardaArchivo(String arch, String[] Datos) throws FileNotFoundException, IOException {
        FileOutputStream out1;
        DataOutputStream out2;
        int i;
        out1 = new FileOutputStream(arch);
        out2 = new DataOutputStream(out1);

        for (i = 0; i < Datos.length; i++) {
            if (Datos[i] != null) {
                out2.writeBytes(Datos[i] + "\n");
            }
        }
        out2.close();
        return true;
    }

    public static void echo(Object msg) {
        System.out.println(msg);
    }

    public static void main(String[] args) throws IOException, Exception {
        String[] res = new String[10000], num = new String[2];
        int i, j, k, ilong;
        int ele = 1;
       ArrayList al = new ArrayList();
        String FName = "C-small-attempt0",  istr, irev, linea;
        if (CargarArchivo("C:\\eblanco\\Desa\\CodeJam\\Code Jam\\test\\" + FName + ".in")) {
            for (j = 1; j <= Integer.parseInt(DatosArchivo[0]); j++) {
                linea = DatosArchivo[ele++];
                num = linea.split(" ");
                   al.clear();
                // echo("A: "+num[0]+" B: "+num[1]);
                for (i = Integer.parseInt(num[0]); i <= Integer.parseInt(num[1]); i++) {
                    istr = Integer.toString(i);
                    ilong = istr.length();
                 
                    for (k = 1; k < ilong; k++) {
                        if (ilong > k) {
                            irev = istr.substring(istr.length() - k, istr.length()) + istr.substring(0, istr.length() - k);
                            //echo("caso: " + j + ": isrt: " + istr + " irev: " + irev);
                            if ((Integer.parseInt(irev) > Integer.parseInt(num[0])) && (Integer.parseInt(irev) > Integer.parseInt(istr)) && (Integer.parseInt(irev) <= Integer.parseInt(num[1]))) {
                                al.add("(" + istr + "," + irev + ")");
                            }
                        }
                    }
                }
                HashSet hs = new HashSet();
                hs.addAll(al);
                al.clear();
                al.addAll(hs);
                res[j] = "Case #" + j + ": " + al.size();
                echo(res[j]);
                LeerArchivo.GuardaArchivo("C:\\eblanco\\Desa\\CodeJam\\Code Jam\\test\\" + FName + ".out", res);
            }
        }
    }
}

package com.g0414.a;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Problem {
	public final String FILE_PATH = "C:/data/workspace/googleCodeJam/src/" + "com/g0414/a/";
	public final String FILE_BASE = "A-small-attempt0";
	// public final String FILE_BASE = "sample";
	public final String INPUT_FILE = FILE_PATH + FILE_BASE + ".in";
	public final String OUTPUT_FILE = FILE_PATH + FILE_BASE + ".txt";
	
	long testN = -1;
	ArrayList<Test> testList = new ArrayList<Test>();
	
	public static void main(String[] args) {
		try {
			Problem p = new Problem();
			p.init();
			p.printResult();
			p.end();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void printResult() throws ProblemException {
		long i = 1;
		for (Test p : testList) {
			prlong("Case #" + i + ": " + p.check());
			i++;
		}
	}
	
	public static boolean flag = true;
	FileWriter outputFile = null;
	public void prlong(String str) throws ProblemException {
		try {
			// t@CÌíAt@CÌVKI[v
			if (flag) {
				flag = false;
				File fw01 = new File(OUTPUT_FILE);
				fw01.delete();
				outputFile = new FileWriter(OUTPUT_FILE, true);
			}
			outputFile.write(str + "\r\n");
			System.out.println(str);
		} catch (IOException e) {
				throw new ProblemException(e.getMessage(),e);
		}
	}
	
	public void end() throws ProblemException {
		try {
			outputFile.close();
		} catch (IOException e) {
			throw new ProblemException(e.getMessage(),e);
		}
	}
	
	public void init() throws ProblemException {
		try {
			FileReader in = new FileReader(INPUT_FILE);
			BufferedReader br = new BufferedReader(in);
			String line;
			testN = Long.parseLong(br.readLine());
			while ((line = br.readLine()) != null) {
				String[] ch = line.split(" ");
				System.out.println(line);
				/*
				ch = line.split(" ");
				long n = Long.parseLong(ch[0]);
				long s = Long.parseLong(ch[1]);
				long p = Long.parseLong(ch[2]);
				ArrayList<Long> tList = new ArrayList<Long>();
				for (int i = 3; i < ch.length; i++) {
					tList.add(Long.parseLong(ch[i]));
				}
				*/
				testList.add(new Test(line.toCharArray()));
			}
			br.close();
			in.close();
		} catch (IOException e) {
			System.out.println(e);
			throw new ProblemException(e.getMessage(),e);
		}
	}
	
	
	public class Test {
		char c[];

		public Test (char c[]) {
			this.c = c;
		}
		
		public String check () {
			char cc[] = new char[c.length];
			for (int i = 0; i < c.length; i++) {
				cc[i] = replace(c[i]);
			}
			return "" + new String(cc);
		}
		
		/*
		Input
		3
		ejp mysljylc kd kxveddknmc re jsicpdrysi
		rbcpc ypc rtcsra dkh wyfrepkym veddknkmkrkcd
		de kr kd eoya kw aej tysr re ujdr lkgc jv
		
		
		Output
		our language is impossible to understand
		there are twenty six factorial possibilities
		so it is okay if you want to just give up
		*/
		
		private char replace (char cc) {
			switch (cc) {
			case 'a': return 'y';
			case 'b': return 'h';
			case 'c': return 'e';
			case 'd': return 's';
			case 'e': return 'o';
			case 'f': return 'c';
			case 'g': return 'v';
			case 'h': return 'x';
			case 'i': return 'd';
			case 'j': return 'u';
			case 'k': return 'i';
			case 'l': return 'g';
			case 'm': return 'l';
			case 'n': return 'b';
			case 'o': return 'k';
			case 'p': return 'r';
			case 'q': return 'z';
			case 'r': return 't';
			case 's': return 'n';
			case 't': return 'w';
			case 'u': return 'j';
			case 'v': return 'p';
			case 'w': return 'f';
			case 'x': return 'm';
			case 'y': return 'a';
			case 'z': return 'q';
			case ' ': return ' ';
			}
			return '!';
		}
		
		@Override
		public String toString() {
			String list = "";
			for (int i = 0; i < c.length; i++) {
				list += c[i];
			}
			return "(" + list + ")";
		}
	}
	
	
	public class ProblemException extends Exception {
		private static final long serialVersionUID = 2080823058826051635L;
		public ProblemException(String message) {
			super(message);
		}
		public ProblemException(String message, Throwable e) {
			super (message, e);
		}
	}
	
	/*
	 * 
Case #1: 1
Case #2: 256
Case #3: 4
Case #4: 674
Case #5: 461
	 * 
	 */
}
