//任意进制相互转化 不输出前导
#include <bits/stdc++.h>
using namespace std;
const int NUM=10;
int z[40],num;
//p进制数x转化为十进制数y
//数字展开
int CP_xTo_10y(int p,int x){
int y=0,p0=1;
while(x!=0){
y+=(x%10)*p0;//取x的个位
x=x/10;//去掉x的个位
p0=p0*p;
}
return y;
}
//将十进制数y转化为q进制,结果存放在数组z
//除基取余
int C10_yTo_Pz(int y,int q){
num=0;
do{
z[num++]=y%q;// 取余
y/=q;//除基
}while(y!=0);//商为0停止循环
for(int i=num-1;i>=0;i--) {
switch(z[i]){
case 10:cout<<'A';break;
case 11:cout<<'B';break;
case 12:cout<<'C';break;
case 13:cout<<'D';break;
case 14:cout<<'E';break;
case 15:cout<<'F';break;
default :cout<<z[i];break;
}
}
}
int main(){
int m,n,x,x1;
//m进制数x转化为n进制数 并输出
while(cin>>m>>n>>x){
cout<<m<<"进制转化为"<<n<<"进制:"<<"原始数据为:"<<x<<endl ;
cout<<"转化结果为:";
memset(z,0,NUM);
//m进制数x直接转化为10进制数
if(n==10){
cout<<CP_xTo_10y(m,x)<<endl;
}
else if(m==10){
C10_yTo_Pz(x,n);//10进制转化为n进制
cout<<endl;
}
else{
//m进制数x先转化为10进制数
x1=CP_xTo_10y(m,x);
//10进制转化为n进制
C10_yTo_Pz(x1,n);//10进制转化为n进制
cout<<endl;
}
}
return 0;
}