#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  vector<int> a;
  int size = 0;
  int max = 0;
  char c;
  for (int i = 0; i < n; i++) {
    cin >> c;
    if (c == '[') {
      size++;
      a.push_back(1);
    } else {
      size--;
      a.push_back(0);
    }
    if (size > max) max = size;
  }
  max = max * 2 + 1;
  vector<vector<char>> mat(max, vector<char>(2000, ' '));
  int H = max, P = 0, f = 0;
  for (int i = 0; i < n; i++) {
    if (!a[i]) {
      if (f) {
        P += 3;
        f = 0;
        H += 2;
      } else {
        H += 2;
      }
    }
    int p = i + P;
    int g = (max - H) / 2;
    mat[g][p] = '+';
    mat[max - g - 1][p] = '+';
    if (a[i]) {
      mat[g][p + 1] = '-';
      mat[max - g - 1][p + 1] = '-';
    } else {
      mat[g][p - 1] = '-';
      mat[max - g - 1][p - 1] = '-';
    }
    for (int k = g + 1; k < max - g - 1; k++) mat[k][p] = '|';
    if (a[i]) {
      f = 1;
      H -= 2;
    }
  }
  int wide = n + P;
  for (int i = 0; i < max; i++) {
    for (int j = 0; j < wide; j++) {
      cout << mat[i][j];
    }
    cout << endl;
  }
  return 0;
}
