#include <stdio.h>
/************************************************************************/
/* 功能:实现任意进制之间的转换
/* 参数:pSrc--指向源进制数,字符数组存放
/* pDst--指向转换完成后的进制数,以字符数组形式存放
/* src --源进制数的进制类型,如十进制数的src值为10
/* dst --需要转换成的进制类型
/************************************************************************/
void Convert(char *pSrc, char *pDst, long src, long dst)
{
long i, j, k, t, number = 0;
char temp;
for (i = 0; pSrc[i] != '\0'; i++)
{
if (pSrc[i] >= '0' && pSrc[i] <= '9') // 如果是数字
{
t = pSrc[i] - '0';
}
else // 否则就是字母
{
t = pSrc[i] - 'A' + 10;
}
number = number * src + t; // 将源进制数组转换成十进制数
}
i = 0;
while (number) // 进行进制转换
{
t = number % dst;
if (t >= 0 && t <= 9) // 如果是数字
{
pDst[i++] = t + '0';
}
else // 那么就是字母
{
pDst[i++] = t + 'A' - 10;
}
number /= dst;
}
// 将转换完成的进制数按自然顺序排放
for (j = 0, k = i - 1; k >= j; j++, k--)
{
temp = pDst[j];
pDst[j] = pDst[k];
pDst[k] = temp;
}
pDst[i] = '\0';
}
int main()
{
char s1[1000], s2[1000];
long src, dst;
while (scanf("%s%ld%ld", s1, &src, &dst) != EOF)
{
Convert(s1, s2, src, dst);
printf("%s\n", s2);
}
return 0;
}