#include <iostream>
#include <cmath>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <stack>
#include <ctime>
#include <queue>
#include <algorithm>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
const int N = 1e6+100;
const int MAX = 1e9+10;
int rem[N];
int rec[N];
char alp[30];
int k = 1;
void getAlpha() {
char p = 'A';
for(int i = 1; i <= 26; ++i, ++p) {
alp[i] = p;
}
}
void convert26(int n) {
while(n) {
rem[k++] = n % 26;
n /= 26;
}
}
void output() {
for(int i = k-1; i >= 1; --i) {
if(alp[rem[i]] != ' ' && alp[rem[i]])
cout << alp[rem[i]];
}
}
void output2(string s) {
int k=0;
for(int i = 0; i < s.size(); ++i) {
rec[++k] = (s[i] - 'A' + 1);
}
int sum = 0;
getAlpha();
if(s.size() == 1) {
cout << (s[0] - 'A' + 1);
return;
}
sum += rec[1] * 26 + rec[2];
for(int i = 3; i <= k; ++i) {
sum = sum * 26 + rec[i];
}
cout << sum;
}
int main() {
ios::sync_with_stdio(false); cin.tie(0);
int n;
cin >> n;
while(n--) {
string s;
cin >> s;
if(s[0] == 'R') {
int st = 0, ed = 0;
for(int i = 0; i < s.size(); ++i) {
if(s[i] == 'C') {
st = 1;
ed = i-1;
break;
}
}
string row = s.substr(st,ed);
for(int i = 0; i < s.size(); ++i) {
if(s[i] == 'C') {
st = i+1;
ed = s.size()-1;
break;
}
}
string col = s.substr(st,ed);
int coln = stoi(col);
memset(rem,0,sizeof(rem));
memset(alp,0,sizeof(alp));
convert26(coln);
getAlpha();
output();
cout << row << endl;
} else {
int st = 0, ed = 0;
for(int i = 0; i < s.size(); ++i) {
if(isdigit(s[i])) {
st = i;
ed = s.size()-1;
break;
}
}
string row = s.substr(st,ed);
for(int i = 0; i < s.size(); ++i) {
if(isdigit(s[i])) {
st = 0;
ed = i;
break;
}
}
string col = s.substr(st,ed);
cout << "R" << row << "C";
memset(rec,0,sizeof(rec));
memset(alp,0,sizeof(alp));
output2(col);
cout << endl;
}
}
return 0;
}