#include <bits/stdc++.h>
using namespace std;
int panduan(const string& s,int left,int right){
while(left>=0 && right<s.size() && s[left]==s[right]){
left--;
right++;
}
return right-left-1;
}
string huiwen(string s){
if(s.length()==0) return "?";
int start=0,maxlen=1;
for(int i=0;i<s.length();i++){
//奇和偶
int len1 = panduan(s,i,i);
int len2 = panduan(s,i,i+1);
int len = max(len1,len2);
if(len>maxlen){
maxlen=len;
start=i-(len-1)/2;
}
else if(len==maxlen && len>0){
int cstart=i-(len-1)/2;
string current = s.substr(cstart,len);
string last = s.substr(start,maxlen);
if(current<last){
start = cstart;
}
}
}
if(maxlen!=s.size()){
return s.substr(start,maxlen);
}else{
return s.substr(start,maxlen)+"(palindrome)";
}
}
int main() {
int n,s,q;
cin>>n;
q = abs(n);
if(n<0){
s=1;
}else{
s=0;
}
string S;
int b;
S.push_back('a'+s);
while(cin>>b){
int d=q%b;
char di='a'+d;
S.push_back(di);
q=q/b;
}
cout<<huiwen(S)<<endl;
}