#include <bits/stdc++.h>
using namespace std;
int n;
int mh, currx = 1, level[110], l = 0;
char sc[110];
char mas[4 * 110][4 * 110];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> sc[i];
    if (sc[i] == '[') {
      l++;
      level[i] = l;
    } else {
      level[i] = l;
      l--;
    }
    mh = max(l, mh);
  }
  mh = 3 + (mh - 1) * 2;
  currx = 1;
  for (int i = 1; i <= n; i++) {
    if (sc[i] == ']' && sc[i - 1] == '[') currx += 3;
    l = level[i];
    for (int j = l; j <= mh - l + 1; j++) {
      mas[j][currx] = '|';
    }
    mas[l][currx] = '+';
    mas[mh - l + 1][currx] = '+';
    if (sc[i] == '[') {
      mas[l][currx + 1] = '-';
      mas[mh - l + 1][currx + 1] = '-';
    }
    if (sc[i] == ']') {
      mas[l][currx - 1] = '-';
      mas[mh - l + 1][currx - 1] = '-';
    }
    currx++;
  }
  for (int i = 1; i <= mh; i++) {
    for (int j = 1; j < currx; j++) {
      if (mas[i][j] != '|' && mas[i][j] != '-' && mas[i][j] != '+')
        cout << ' ';
      else
        cout << mas[i][j];
    }
    cout << endl;
  }
  return 0;
}
