#include<iostream>
#include<stdio.h>
#include<string>
#include<cstdio>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<cstring>
using namespace std;
// z=26 az=52 bz=78 cz=104 dz=130 zz=26*26 aaa=26*26+1 aab=26*26+2
// aaz 26*27 abz 26*28 acz 26*29 azz 26*
int main()
{
char str[100],c;
string newstr;
int t,i,l,row,num;
int x,sec;
scanf("%d",&t);
while(t--)
{
newstr.clear();
scanf("%s",&str);
int l=strlen(str);
row=0; num=0;
// R23C1000
if(str[0]=='R' && (str[1]-'0')>=0 && (str[1]-'0')<=9)
{ int x=0;;
for(i=l-1;i>=0;i--)
{ if(str[i]=='C') { sec=i; break; }
num+=(str[i]-'0')*pow(10,x); x++;
}
x=0;
for(i=sec-1;i>=0;i--)
{
if(str[i]=='R') break;
// cout<<i<<endl;
row+=(str[i]-'0')*pow(10,x); x++;
}
if(num%26==0) { newstr.push_back('Z'); num=num/26 - 1; }
else { sec=num%26; c=sec+64; newstr.push_back(c); num=num/26; }
while(num>0)
{
if(num==26)
{ newstr.push_back('Z'); break; }
sec=num%26;
if(sec==0) c='Z';
else c=sec+64;
newstr.push_back(c);
num=num/26;
}
reverse(newstr.begin(),newstr.end());
cout<<newstr<<row<<endl;
}
// AAZ23
else
{
x=0;
for(i=strlen(str)-1;((str[i]-'0')>=0 && (str[i]-'0')<=9);i--)
{ row+=(str[i]-'0')*pow(10,x); x++; }
x=0;
for(;i>=0;i--)
{ num+=(str[i]-64)*pow(26,x); x++; }
printf("R%dC%d\n",row,num);
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxzdGRsaWIuaD4KI2luY2x1ZGU8bWF0aC5oPgoKI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxjc3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gej0yNiAgYXo9NTIgIGJ6PTc4ICBjej0xMDQgIGR6PTEzMCAgeno9MjYqMjYgIGFhYT0yNioyNisxIGFhYj0yNioyNisyCi8vIGFheiAyNioyNyAgYWJ6IDI2KjI4ICBhY3ogMjYqMjkgIGF6eiAyNiogICAKCmludCBtYWluKCkKewoJY2hhciBzdHJbMTAwXSxjOwoJc3RyaW5nIG5ld3N0cjsKCWludCB0LGksbCxyb3csbnVtOwoJaW50IHgsc2VjOwoJc2NhbmYoIiVkIiwmdCk7Cgl3aGlsZSh0LS0pCgl7CgkJbmV3c3RyLmNsZWFyKCk7CgkJc2NhbmYoIiVzIiwmc3RyKTsKCQlpbnQgbD1zdHJsZW4oc3RyKTsKCQkgIHJvdz0wOyAgICBudW09MDsKCQkJCQkJCQkvLyAgUjIzQzEwMDAKCQlpZihzdHJbMF09PSdSJyAmJiAoc3RyWzFdLScwJyk+PTAgJiYgKHN0clsxXS0nMCcpPD05KQoJCXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4PTA7OwoJCQlmb3IoaT1sLTE7aT49MDtpLS0pCgkJICAgIHsJICBpZihzdHJbaV09PSdDJykgIHsgc2VjPWk7ICBicmVhazsgfQoJCSAgICAgICAgICBudW0rPShzdHJbaV0tJzAnKSpwb3coMTAseCk7ICAgICAgICAgICAgeCsrOwoJCQl9CgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeD0wOwoJCQkgZm9yKGk9c2VjLTE7aT49MDtpLS0pCgkJCSB7CgkJCQkgaWYoc3RyW2ldPT0nUicpICBicmVhazsKCQkJCS8vIGNvdXQ8PGk8PGVuZGw7CgkJCQkgcm93Kz0oc3RyW2ldLScwJykqcG93KDEwLHgpOyAgICAgICAgeCsrOwoJCQkgfQoJCQkgCgkJCSBpZihudW0lMjY9PTApICB7ICBuZXdzdHIucHVzaF9iYWNrKCdaJyk7ICBudW09bnVtLzI2IC0gMTsgIH0KCQkJIGVsc2UgICAgICAgICAgIHsgIHNlYz1udW0lMjY7ICAgYz1zZWMrNjQ7ICAgbmV3c3RyLnB1c2hfYmFjayhjKTsgICBudW09bnVtLzI2OyAgICB9CgkJCSAKCQkJIHdoaWxlKG51bT4wKQoJCQkgewoJCQkJIGlmKG51bT09MjYpICAKCQkJCSAgICB7IG5ld3N0ci5wdXNoX2JhY2soJ1onKTsgIGJyZWFrOyAgIH0KCQkJCSBzZWM9bnVtJTI2OwoJCQkJIGlmKHNlYz09MCkgIGM9J1onOwoJCQkJIGVsc2UgICAgICAgIGM9c2VjKzY0OwoJCQkJIAoJCQkJIG5ld3N0ci5wdXNoX2JhY2soYyk7CgkJCQkgbnVtPW51bS8yNjsKCQkJIH0KCQkJIAoJCQkgcmV2ZXJzZShuZXdzdHIuYmVnaW4oKSxuZXdzdHIuZW5kKCkpOwoJCQkgY291dDw8bmV3c3RyPDxyb3c8PGVuZGw7CgkJfQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBBQVoyMwoJCWVsc2UKCQl7CgkJCXg9MDsKCQkJZm9yKGk9c3RybGVuKHN0ciktMTsoKHN0cltpXS0nMCcpPj0wICYmIChzdHJbaV0tJzAnKTw9OSk7aS0tKQoJCQkgICAgeyAgcm93Kz0oc3RyW2ldLScwJykqcG93KDEwLHgpOyAgIHgrKzsgICB9CgkJCQoJCQkJeD0wOwoJCQlmb3IoO2k+PTA7aS0tKQoJCQkJewludW0rPShzdHJbaV0tNjQpKnBvdygyNix4KTsgIHgrKzsgIH0KCgkJCgkJICAgIHByaW50ZigiUiVkQyVkXG4iLHJvdyxudW0pOwoJCX0KCX0KCXJldHVybiAwOwp9