#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;

}
413| 655| 447| 513| 167| 549| 477| 71| 229| 531|