rendered paste body#include <iostream>
#include <vector>
#include <algorithm>
#define SZ(a) (int)(a).size()
using namespace std;
string solve (string &num, string &sourceLang, string &targetLang)
{
int sBase = SZ(sourceLang);
long long n = 0, multiplier = 1;
for(int i = SZ(num) - 1; i >= 0; i--)
{
n += sourceLang.find(num[i]) * multiplier;
multiplier *= sBase;
}
//cout<<"number = "<<n<<endl;
string ans = "";
int tBase = SZ(targetLang), rem;
while(n > 0)
{
rem = n % tBase;
ans.push_back(targetLang[rem]);
n /= tBase;
}
reverse(ans.begin(), ans.end());
return ans;
}
int main()
{
int N, i = 1;
cin >> N;
char ip[200];
string ln, num, sourceLang, targetLang;
cin.clear();
cin.ignore();
while(N--)
{
cin.getline(ip, 200);
ln = ip;
int sp1 = ln.find(" ");
num = ln.substr(0, sp1);
int sp2 = ln.find(" ", sp1 + 1);
sourceLang = ln.substr(sp1 + 1, sp2 - sp1 - 1);
targetLang = ln.substr(sp2 + 1);
//cout<<ln<<endl;
//cout<<num<<" "<<sourceLang<<" "<<targetLang<<endl;
cout << "Case #" << i++ <<": "<<solve(num, sourceLang, targetLang)<<endl;
}
return 0;
}