/*Safecracker
2008-08-23 09:41:49 Accepted 1403 C++ 00:00.17 848K 天将降大任于我
搜索 输入的字符串s中满足a-b^2+c^3-d^4+e^5=n 的字母 按字典序 最优输出
*/
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
using namespace std;
const int N=12;
int a[N+1];
bool cmp(int a,int b)
{
return a<b;
}
int main()
{
string s;int n,k,i,i1,i2,i3,i4,i5,t;bool f;
while(cin>>n>>s)
{ if(n==0&&s=="END") break;
f=0;
k=s.length()-1;
for(i=0;i<=k;i++) a[i]=s[i]-'A'+1;
sort(a,a+k,cmp);
for(i1=k;i1>=0;i1--)
for(i2=k;i2>=0;i2--)
for(i3=k;i3>=0;i3--)
for(i4=k;i4>=0;i4--)
for(i5=k;i5>=0;i5--)
{
if(i1!=i2&&i1!=i3&&i1!=i4&&i1!=i5&&i2!=i3&&i2!=i4&&i2!=i5&&i3!=i4&&i3!=i5&&i4!=i5)
{
t=a[i1]-pow(double(a[i2]),2.0)+pow(double(a[i3]),3.0)-pow(double(a[i4]),4.0)+pow(double(a[i5]),5.0);
if(t==n) {f=1;goto loop;}
}
}
loop: if(f) cout<<char(a[i1]-1+'A')<<char(a[i2]-1+'A')<<char(a[i3]-1+'A')<<char(a[i4]-1+'A')<<char(a[i5]-1+'A')<<endl;
if(!f) cout<<"no solution"<<endl;
}
return 0;
}
心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪!
空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!