#include <iostream>
#include<cstring>
//#include <bits/stdc++.h>//包含所有头文件,可惜hdu不识别
#include<stdio.h>
//看懂题意,直接五个循环,不超时
#include<algorithm>
#include<iostream>
using namespace std;
bool cmp(char a,char b)
{
return a>b;
}
int main()
{
int target;
char s[20];
while(cin>>target&&target)
{
cin>>s;
int flog=0;
int len=strlen(s);
sort(s,s+len,cmp);
for(int a=0; a<len; a++)
{
for(int b=0; b<len; b++)
{
if(b==a)continue;
for(int c=0; c<len; c++)
{
if(c==b||c==a)continue;
for(int d=0; d<len; d++)
{
if(d==a||d==b||d==c) continue;
for(int e=0; e<len; e++)
{
if(e==a||e==b||e==c||e==d) continue;
int ta=s[a]-'A'+1;
int tb=s[b]-'A'+1;
int tc=s[c]-'A'+1;
int td=s[d]-'A'+1;
int te=s[e]-'A'+1;
if(ta-tb*tb+tc*tc*tc-td*td*td*td+te*te*te*te*te==target)
{
flog=1;
//cout<<
printf("%c%c%c%c%c\n",s[a],s[b],s[c],s[d],s[e]);//printf输出C C++均可用
break;
}
}
if(flog)break;
}
if(flog)break;
}
if(flog)break;
}
if(flog)break;
}
if(flog==0)cout<<"no solution"<<endl;
}
return 0;
}
#include<cstring>
//#include <bits/stdc++.h>//包含所有头文件,可惜hdu不识别
#include<stdio.h>
//看懂题意,直接五个循环,不超时
#include<algorithm>
#include<iostream>
using namespace std;
bool cmp(char a,char b)
{
return a>b;
}
int main()
{
int target;
char s[20];
while(cin>>target&&target)
{
cin>>s;
int flog=0;
int len=strlen(s);
sort(s,s+len,cmp);
for(int a=0; a<len; a++)
{
for(int b=0; b<len; b++)
{
if(b==a)continue;
for(int c=0; c<len; c++)
{
if(c==b||c==a)continue;
for(int d=0; d<len; d++)
{
if(d==a||d==b||d==c) continue;
for(int e=0; e<len; e++)
{
if(e==a||e==b||e==c||e==d) continue;
int ta=s[a]-'A'+1;
int tb=s[b]-'A'+1;
int tc=s[c]-'A'+1;
int td=s[d]-'A'+1;
int te=s[e]-'A'+1;
if(ta-tb*tb+tc*tc*tc-td*td*td*td+te*te*te*te*te==target)
{
flog=1;
//cout<<
printf("%c%c%c%c%c\n",s[a],s[b],s[c],s[d],s[e]);//printf输出C C++均可用
break;
}
}
if(flog)break;
}
if(flog)break;
}
if(flog)break;
}
if(flog)break;
}
if(flog==0)cout<<"no solution"<<endl;
}
return 0;
}