#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1E-7;
const long long INF = 1E+9 + 7;
const long double pip = 3.14159265358979323846;
int main() {
  int n;
  string s;
  cin >> n;
  cin >> s;
  int bal = 0, ma = 0;
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '[') {
      bal++;
    } else
      bal--;
    ma = max(ma, abs(bal));
  }
  char a[1000][1000];
  memset(a, ' ', sizeof(char) * 500 * 500);
  int mid = ma, k = 0, it = 0;
  bal = 0;
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '[') {
      a[mid][it] = '|';
      k = ma - bal - 1;
      for (int j = 1; j <= k; j++) {
        a[mid + j][it] = '|';
        a[mid - j][it] = '|';
      }
      a[mid + k + 1][it] = '+';
      a[mid - k - 1][it] = '+';
      a[mid + k + 1][it + 1] = '-';
      a[mid - k - 1][it + 1] = '-';
      bal++;
    } else {
      bal--;
      if (s[i - 1] == '[') {
        it += 3;
      }
      a[mid][it] = '|';
      k = ma - bal - 1;
      for (int j = 1; j <= k; j++) {
        a[mid + j][it] = '|';
        a[mid - j][it] = '|';
      }
      a[mid + k + 1][it] = '+';
      a[mid - k - 1][it] = '+';
      a[mid + k + 1][it - 1] = '-';
      a[mid - k - 1][it - 1] = '-';
    }
    it++;
  }
  for (int i = 0; i < (mid + mid + 1); i++) {
    for (int j = 0; j < it; j++) {
      printf("%c", a[i][j]);
    }
    printf("\n");
  }
  return 0;
}
