char num[10][21];
char a[21];
char sum[22];
char x[10];
char y[10];
char
i,j,n,b,temp;
Init()
{for(i=0;i<10;i++)
num[i][0]=1;
for(n=0;n<10;n++)
for(i=0;i<21;i++)
{temp=0;
for(j=0;j<21;j++)
{num[n][j]=num[n][j]*n+temp;
if(num[n][j]>9)
{temp=num[n][j]/10;
num[n][j]%=10;
}
else
temp=0;
}
}
}
add(char m)
{temp=0;
for(j=0;j<21;j++)
{sum[j]=sum[j]+num[m][j]+temp;
if(sum[j]>9)
{temp=sum[j]/10;
sum[j]%=10;
}
else
temp=0;
}
sum[21]=temp;
}
check()
{for(i=0;i<10;i++)
{x[i]=0;
y[i]=0;
}
b=1;
for(i=0;i<21;i++)
{x[a[i]]++;
y[sum[i]]++;
}
for(i=0;i<10;i++)
{if(x[i]!=y[i])
b=0;
}
if(b==1)
{for(i=0;i<21;i++)
printf("%d",sum[20-i]);
printf("\n");
}
}
find()
{for(a[0]=1;a[0]<10;a[0]++)
for(a[1]=0;a[1]<=a[0];a[1]++)
for(a[2]=0;a[2]<=a[1];a[2]++)
for(a[3]=0;a[3]<=a[2];a[3]++)
for(a[4]=0;a[4]<=a[3];a[4]++)
for(a[5]=0;a[5]<=a[4];a[5]++)
for(a[6]=0;a[6]<=a[5];a[6]++)
for(a[7]=0;a[7]<=a[6];a[7]++)
for(a[8]=0;a[8]<=a[7];a[8]++)
for(a[9]=0;a[9]<=a[8];a[9]++)
for(a[10]=0;a[10]<=a[9];a[10]++)
for(a[11]=0;a[11]<=a[10];a[11]++)
for(a[12]=0;a[12]<=a[11];a[12]++)
for(a[13]=0;a[13]<=a[12];a[13]++)
for(a[14]=0;a[14]<=a[13];a[14]++)
for(a[15]=0;a[15]<=a[14];a[15]++)
for(a[16]=0;a[16]<=a[15];a[16]++)
for(a[17]=0;a[17]<=a[16];a[17]++)
for(a[18]=0;a[18]<=a[17];a[18]++)
for(a[19]=0;a[19]<=a[18];a[19]++)
for(a[20]=0;a[20]<=a[19];a[20]++)
{for(i=0;i<22;i++)
sum[i]=0;
for(i=0;i<21;i++)
if(a[i]!=0)
add(a[i]);
else
break;
if(sum[20]!=0
&& sum[21]==0)
check();
}
}
main()
{Init();
find();
}