use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
let first_line = lines.next().unwrap().unwrap();
let n: usize = first_line.trim().parse().unwrap();
for _ in 0..n {
let s = lines.next().unwrap().unwrap();
println!("{}", solve(s));
}
}
fn solve(s: String) -> String {
let chars: Vec<char> = s.chars().collect();
let starts_with_r = chars[0] == 'R';
let second_is_digit = chars.len() > 1 && chars[1].is_ascii_digit();
let c_index_opt = s[1..].find('C').map(|i| i + 1);
if starts_with_r && second_is_digit && c_index_opt.is_some() {
let c_idx = c_index_opt.unwrap();
let row_part = &s[1..c_idx];
let col_part = &s[c_idx+1..];
let col_num: u32 = col_part.parse().unwrap();
let col_letters = number_to_col(col_num);
format!("{}{}", col_letters, row_part)
} else {
let first_digit_idx = s.find(|c: char| c.is_ascii_digit()).unwrap();
let letters = &s[..first_digit_idx];
let row_part = &s[first_digit_idx..];
let col_num = col_to_number(letters);
format!("R{}C{}", row_part, col_num)
}
}
fn col_to_number(col_str: &str) -> u32 {
let mut num = 0;
for c in col_str.chars() {
let val = c as u32 - 'A' as u32 + 1;
num = num * 26 + val;
}
num
}
fn number_to_col(mut n: u32) -> String {
let mut result = Vec::new();
while n > 0 {
n -= 1;
let remainder = (n % 26) as u8;
result.push((b'A' + remainder) as char);
n /= 26;
}
result.into_iter().rev().collect()
}