import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern;
public class Spreadsheets {
public static void main(String[] args) throws NumberFormatException, IOException { int noOfTestCases; InputStreamReader in = new InputStreamReader(System.in); BufferedReader input = new BufferedReader( in ); noOfTestCases = Integer.parseInt(input.readLine()); List < String > arrayOfStringsToConvert = new ArrayList < String > (); for (int i = 0; i < noOfTestCases; i++) { arrayOfStringsToConvert.add(input.readLine()); } for (int i = 0; i < noOfTestCases; i++) { if (arrayOfStringsToConvert.get(i).startsWith("R") && Character.isDigit(arrayOfStringsToConvert.get(i).charAt(1))) { System.out.println(represenation1(arrayOfStringsToConvert.get(i))); } else { System.out.println(represenation2(arrayOfStringsToConvert.get(i))); } } } // R23C55 to BC23 private static String represenation1(String input) { int row; int column; Pattern p = Pattern.compile("[0-9]+"); Matcher m = p.matcher(input); List < Integer > rowAndColumns = new ArrayList < > (); while (m.find()) { rowAndColumns.add(Integer.parseInt(m.group(0))); } row = rowAndColumns.get(0); column = rowAndColumns.get(1); //loop must traverse int i = column; StringBuilder str = new StringBuilder(); int remain; while (i > 26) { remain = i % 26; remain = remain == 0 ? 1 : remain; remain = remain + 65 - 1; str.append((char) remain); i = i / 26; } str.append((char)(i + 65 - 1)); str.reverse(); return str.append(row).toString(); } // BC23 to R23C55 private static String represenation2(String input) { Pattern p = Pattern.compile("[A-Z]+"); Matcher m = p.matcher(input); String col = null; while (m.find()) { col = m.group(0); } p = Pattern.compile("[0-9]+"); m = p.matcher(input); int row = 0; while (m.find()) { row = Integer.parseInt(m.group(0)); } int length = col.length(); int magicNumer = 0; for (int i = length - 1; i >= 0; i--) { magicNumer = (int)(magicNumer + ((int) col.charAt(i) - 65 + 1) * Math.pow(26, length - i - 1)); } StringBuilder out = new StringBuilder(); return out.append('R').append(row).append('C').append(magicNumer).toString(); }
}