#include <bits/stdc++.h>
char a[400][400];
char s[102];
int main() {
  int n;
  scanf("%d\n", &n);
  scanf("%s", s);
  int maxd = 0, d = 0;
  for (int i = 0; s[i]; i++) {
    if (s[i] == '[') d += 1;
    if (s[i] == ']') d -= 1;
    if (d > maxd) maxd = d;
  }
  memset(a, ' ', sizeof(a));
  d = maxd;
  int c = 0;
  int imgh = maxd * 2 + 1;
  for (int si = 0; s[si]; si++) {
    if (s[si] == ']') d++;
    for (int i = maxd - d + 1; i < imgh - maxd + d - 1; i++) a[i][c] = '|';
    a[maxd - d][c] = '+';
    a[imgh - maxd + d - 1][c] = '+';
    if (s[si] == '[') {
      a[maxd - d][c + 1] = '-';
      a[imgh - maxd + d - 1][c + 1] = '-';
      d--;
      if (s[si + 1] == ']') c += 3;
    } else {
      a[maxd - d][c - 1] = '-';
      a[imgh - maxd + d - 1][c - 1] = '-';
    }
    c++;
  }
  for (int i = 0; i < imgh; i++) {
    a[i][c] = 0;
    puts(a[i]);
  }
  return 0;
}
