#include<iostream.h>
#include<string.h>
#include<math.h>
#include<iomanip.h>
char s[100];
char chu[1000][100];
//由于每一次输出chu,之后如果又使用chu的话,chu里面的数据并
//没有消去,则有问题,所以开了一个字符串数组1000位,但这好
//像并没有解决实际问题……
int main()
{
long from,to,a,i,j,k,temp,sum,jishu=0;
while((cin>>s>>from>>to)!=NULL)
{
sum=0;
k=strlen(s);
for(i=0;i<k;i++)
{
if(s[i]>'9')
a=s[i]-'A'+10;
else
a=s[i]-'0';
sum+=pow(from,k-i-1)*a;
}
if(to!=10)
{
j=0;
while(sum!=0)
{
if(sum%to>=10)
chu[jishu][j]=sum%to-10+'A';
else
chu[jishu][j]=sum%to+'0';
sum/=to;
j++;
}
for(i=0;i<j/2;i++)
{
temp=chu[jishu][i];
chu[jishu][i]=chu[jishu][j-i-1];
chu[jishu][j-i-1]=temp;
}
if(strlen(chu[jishu])<=7)
cout<<setiosflags(ios::right)<<setw(7)<<chu[jishu]<<endl;
else
cout<<setiosflags(ios::right)<<setw(7)<<"ERROR"<<endl;
}
else
{
if(sum/10000000==0)
cout<<setiosflags(ios::right)<<setw(7)<<sum<<endl;
else
cout<<setiosflags(ios::right)<<setw(7)<<"ERROR"<<endl;
}
jishu++;
}
return 0;
}