#include<cstdio>
#include<iostream>
#include<cstring>
const int maxn=1000;
using namespace std;
int n,m;
char str1[maxn],str2[maxn];
int t[maxn],A[maxn];
void solve(char *str1,char *str2,int n,int m)
{
int len,i,k;
len = strlen(str1);
for(i=len;i>=0;i--)
{
t[len-1-i]=str1[i]-(str1[i]<58?48:str1[i]<91?55:61); //ascii '0'-48 'A'-65 'a'-97
}
for(i=0;len;)
{
for(i=len;i>0;i--)
{
t[i-1]=t[i]%m*n;
t[i]/=m;
}
A[k++]=t[0]%m;
t[0]/=m;
while(len>0&&!t[len-1])
{
len--;
}
}
str2[k]=NULL;
for(i=0;i<k;i++)
{
str2[k-1-i] = A[i]+(A[i]<10?48:A[i]<36?55:61);
}
}
int main()
{
int i,T;
cin>>T;
for(i=0;i<T;i++)
{
cin>>n>>m>>str1;
solve(str1,str2,n,m);
cout<<n<<" "<<str1<<endl;
cout<<m<<" "<<str2<<endl;
if(i!=T-1)
cout<<endl;
}
}
|