#include<stdio.h>
#include<string.h>
#include<math.h>
#define EPSILON 0.1
int main()
{
double num1;
int flag,v,w,x,y,z,len;
char a[20]= {0};
double b[20]= {0};
for(int i=0; i<20; i++)
{
a[i]=0;
}
while(scanf("%lf %s",&num1,a)!=EOF)
{
if(num1==0&&strcmp(a,"END")==0)
{
break;
}
flag=0;
//把字符型数据组转换成数字型
for(int i=0; i<20; i++)
{
b[i]=a[i];
}
len=strlen(a);
for(int j=0; j<len; j++)
{
b[j]=b[j]-64;
}
for(v=len-1; v>=0; v--)
{
for(w=len-1; w>=0; w--)
{
for(x=len-1; x>=0; x--)
{
for(y=len-1; y>=0; y--)
{
for(z=len-1; z>=0; z--)
{
if(w!=v&&x!=v&&x!=w&&y!=v&&y!=w&&y!=x&&z!=v&&z!=w&&z!=x&&z!=y)
{
if(fabs(num1-(b[v]-pow(b[w],2)+pow(b[x],3)-pow(b[y],4)+pow(b[z],5)))<EPSILON)
{
printf("%c%c%c%c%c\r\n",a[v],a[w],a[x],a[y],a[z]);
flag=1;
v=w=x=y=z=-1;
}
}
}
}
}
}
}
if(flag==0)
{
printf("no solution\r\n");
}
}
return 0;
}