//暴力法 就是这么猛,还害我想了半天,我整个人都醉了。直接暴力就可以一遍过
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int cmp(int a,int b)
{ return a>b; }
int main()
{
char s[16];
int b[15];
int c[5];
int n,i,j,k,l,ll,lll,flag;
while(scanf("%d%s",&n,&s)!=EOF)
{
if(n==0&&strcmp(s,"END")==0)
break;
k=strlen(s);
flag=0;
for(i=0;i<k;i++)
{
b[i]=s[i]-'A'+1;
}
sort(b,b+k,cmp);
memset(c,0,sizeof(c));
for(i=0;i<k;i++)
{
if(flag==1)
break;
for(j=0;j<k;j++)
{
if(j==i)
continue;
if(flag==1)
break;
for(l=0;l<k;l++)
{
if(l==j||l==i)
continue;
if(flag==1)
break;
for(ll=0;ll<k;ll++)
{
if(ll==i||ll==j||ll==l)
continue;
if(flag==1)
break;
for(lll=0;lll<k;lll++)
{
if(lll==i||lll==j||lll==l||lll==ll)
continue;
if(flag==1)
break;
if(b[i]-b[j]*b[j]+b[l]*b[l]*b[l]-b[ll]*b[ll]*b[ll]*b[ll]+b[lll]*b[lll]*b[lll]*b[lll]*b[lll]==n)
{
c[0]=b[i];c[1]=b[j];c[2]=b[l];c[3]=b[ll];c[4]=b[lll];
flag=1;
break;
}
}
}
}
}
}
if(c[0]!=0)
{
for(i=0;i<5;i++)
printf("%c",c[i]-1+'A');
printf("\n");
}
else
printf("no solution\n");
}
return 0;
}