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