#include <bits/stdc++.h>
#define INT long long int
#define M (INT)(6e18)
using namespace std;
int n, h = 1, W, G[110][110];
//vector<int> G[110];
char prt[110][110];
int draw(int x, int y, int w)
{
    bool flag = 1;
    prt[h][w] = x+'a'-1;
    W = max( w, W );
    for(int i = 1 ; i <= n ; i++ )
    {
        if( G[x][i] and i != y )
        {
            if( flag ) draw( i, x, w+1 ), flag = 0;
            else h++, prt[h][w] = '+', draw( i, x, w+1 );
        }
    }
}
int main()
{
    freopen(".10.in","r",stdin);
    freopen(".10.out","w",stdout);
    ios::sync_with_stdio(false);
    cin>>n;
    for(int i = 0 ; i < n-1 ; i++ )
    {
        char a, b;
        cin>>a>>b;
        G[a-'a'+1][b-'a'+1] = G[b-'a'+1][a-'a'+1] = 1;
    }
    draw(1, 1, 1);
    for(int i = 1 ; i <= h ; i++ )
        for(int j = 1 ; j <= W ; j++ )
            if( prt[i][j] == '+' )
                for(int k = i-1 ; !prt[k][j] ; k-- )
                    prt[k][j] = '|';
    for(int i = 1 ; i <= h ; i++, puts("") )
        for(int j = 1 ; j <= W ; j++ )
            if( prt[i][j] ) printf("%c%c", (prt[i][j]=='+'||prt[i][j]=='|')?'.':'-', prt[i][j]);
            else printf("..");
}
/*
5
a b
b c
c d
d e

5
c d
d e
a b
b c

6
a b
c b
d c
e d
d f

6
d f
a b
c b
e d
d c

9
a b
a c
b f
b g
c d
c e
d h
d i

10
a d
a e
d j
f e
i f
f h
b h
c h
b g

26
a b
a c
b d
b e
c f
c g
d h
d i
e j
e k
g l
g m
h r
h s
m n
m o
s t
s u
o p
o q
u v
v w
w x
x y
x z

26
a b
b l
b c
c m
c d
d n
d e
e o
e f
f p
f g
g q
q v
v w
w x
g h
h r
r y
y z
h i
i s
i j
j t
j k
k u

26
a b
a c
b d
b e
c f
c g
d h
d i
e j
e k
f l
f m
g n
g o
h p
h q
i r
i s
j t
j u
k v
k w
l x
l y
m z

1

*/
