#include <iostream>
#include <stack>
#include <cstring>
using namespace std;
int Tmap[125];
char Smap[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char ch[1010];
char ans[1010];
int main(){
int n,m,t,i,T;
for(i='0';i<='9';i++)
Tmap[i]=i-'0';
for(i='A';i<='Z';i++)
Tmap[i]=i-55;
for(i='a';i<='z';i++)
Tmap[i]=i-61;
scanf("%d",&T);
while(T--){
scanf("%d%d%s",&n,&m,ch);
printf("%d %s\n",n,ch);
if(n==m){
printf("%d %s\n\n",n,ch);
continue;
}
stack<char>q;
int len=strlen(ch);
int temp=0,d=0,s;
int k=0;
while(1){
s=Tmap[ch[k]];
for(i=k;i<len;i++){
ch[i]=Smap[s/m];
d=s%m;
if(i<len-1)
s=Tmap[ch[i+1]]+d*n;
}
q.push(Smap[d]);
while(ch[k]=='0')
k++;
if(k>=len)
break;
}
printf("%d ",m);
while(!q.empty()){
printf("%c",q.top());
q.pop();
}
printf("\n\n");
}
return 0;
}
#include <stack>
#include <cstring>
using namespace std;
int Tmap[125];
char Smap[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char ch[1010];
char ans[1010];
int main(){
int n,m,t,i,T;
for(i='0';i<='9';i++)
Tmap[i]=i-'0';
for(i='A';i<='Z';i++)
Tmap[i]=i-55;
for(i='a';i<='z';i++)
Tmap[i]=i-61;
scanf("%d",&T);
while(T--){
scanf("%d%d%s",&n,&m,ch);
printf("%d %s\n",n,ch);
if(n==m){
printf("%d %s\n\n",n,ch);
continue;
}
stack<char>q;
int len=strlen(ch);
int temp=0,d=0,s;
int k=0;
while(1){
s=Tmap[ch[k]];
for(i=k;i<len;i++){
ch[i]=Smap[s/m];
d=s%m;
if(i<len-1)
s=Tmap[ch[i+1]]+d*n;
}
q.push(Smap[d]);
while(ch[k]=='0')
k++;
if(k>=len)
break;
}
printf("%d ",m);
while(!q.empty()){
printf("%c",q.top());
q.pop();
}
printf("\n\n");
}
return 0;
}