#include <bits/stdc++.h>

using namespace std;
struct Node{
    Node *l,*r;
    int val;
    string rez;
    long double freq;
};
vector<string> rez;
void build(Node*nd, string pr){
//    cout << pr <<" " ;
    if(nd->l||nd->r){
        build(nd->l, pr + "-");
        build(nd->r, pr + ".");
        return ;
    }
    rez[nd->val] = pr;
}
int main(){
    int n;cin>>n;
    rez.resize(n);
    vector<Node*> nodes(n);
    long double f;
    for(int i = 0 ; i < n ; i ++){
        cin>>f;
        nodes[i] = new Node{NULL,NULL,i,"",f};
    }
    while(nodes.size()>1){
        sort(nodes.begin(),nodes.end(),[](Node* a,Node*b){
            return a->freq > b->freq;
        });
        Node *cl = nodes.back();nodes.pop_back();
        Node *cr = nodes.back();nodes.pop_back();
        nodes.push_back(new Node{cl,cr,-1,"",cl->freq+cr->freq});
//        for(int i = 0 ; i < nodes.size() ; i ++){
//            cout << nodes[i]->val;
//        }
//        cout<<endl;
    }
    build(nodes[0], "");
    for(auto r: rez){
        cout << r<<endl;
    }
}