#include <bits/stdc++.h>
using namespace std;
bool closed[100];
bool dir[100];
int main() {
  int n;
  cin >> n;
  char a[100];
  int res[150];
  for (int i = 0; i < 150; i++) res[i] = 0;
  for (int i = 0; i < n; i++) cin >> a[i];
  int cnt = 0;
  int maxcnt = 0;
  for (int i = 0; i < n; i++)
    if (a[i] == '[') {
      cnt++;
      res[i] = cnt;
      if (cnt > maxcnt) maxcnt = cnt;
    } else
      for (int j = i - 1; j >= 0; j--) {
        if (a[j] == '[' && !closed[j]) {
          closed[j] = true;
          res[i] = res[j];
          cnt--;
          closed[i] = true;
          break;
        }
      }
  for (int i = 0; i < n; i++) {
    res[i] = maxcnt - res[i] + 1;
    res[i] = 2 * res[i] - 1;
  }
  int curx = 0;
  int cury = 0;
  int maxx = 0;
  int maxy = 0;
  char canvas[500][500];
  for (int i = 0; i < 500; i++)
    for (int j = 0; j < 500; j++) canvas[i][j] = ' ';
  for (int i = 0; i < n; i++) {
    if (!dir[res[i]]) {
      dir[res[i]] = true;
      canvas[curx][cury] = '+';
      canvas[curx][cury + 1] = '-';
      int pointer = curx;
      for (int j = 0; j < res[i]; j++) {
        pointer++;
        canvas[pointer][cury] = '|';
      }
      pointer++;
      if (pointer > maxx) maxx = pointer;
      canvas[pointer][cury] = '+';
      canvas[pointer][cury + 1] = '-';
      if (!dir[res[i + 1]]) {
        curx++;
        cury++;
      } else {
        cury += 4;
      }
    } else {
      dir[res[i]] = false;
      canvas[curx][cury] = '+';
      canvas[curx][cury - 1] = '-';
      int pointer = curx;
      for (int j = 0; j < res[i]; j++) {
        pointer++;
        canvas[pointer][cury] = '|';
      }
      pointer++;
      if (pointer > maxx) maxx = pointer;
      canvas[pointer][cury] = '+';
      canvas[pointer][cury - 1] = '-';
      if (dir[res[i + 1]]) {
        curx--;
        cury++;
      } else {
        cury++;
      }
    }
    if (cury > maxy) maxy = cury;
    if (curx > maxx) maxx = curx;
  }
  for (int i = 0; i <= maxx; i++) {
    for (int j = 0; j < maxy; j++) cout << canvas[i][j];
    cout << endl;
  }
}
