#include <bits/stdc++.h>
using namespace std;
char toster[401][401] = {' '};
char boyara[201];
int n;
int toster12 = 0;
void change(int per1, int per2, bool per3) {
  int prop = toster12 - per2;
  per2 = per2 * 2 - 1;
  toster[prop][per1] = '+';
  if (per3)
    toster[prop][per1 + 1] = '-';
  else
    toster[prop][per1 - 1] = '-';
  for (int i = prop + 1; i <= per2 + prop; i++) toster[i][per1] = '|';
  toster[prop + per2 + 1][per1] = '+';
  if (per3)
    toster[prop + per2 + 1][per1 + 1] = '-';
  else
    toster[prop + per2 + 1][per1 - 1] = '-';
}
int main() {
  for (int i = 0; i < 401; i++)
    for (int j = 0; j < 401; j++) toster[i][j] = ' ';
  cin >> n;
  int tmp = 0;
  for (int i = 0; i < n; i++) {
    if (tmp > toster12) toster12 = tmp;
    cin >> boyara[i];
    if (boyara[i] == '[')
      tmp++;
    else
      tmp--;
  }
  tmp = toster12;
  int j = 0;
  for (int i = 0; i < n; i++, j++) {
    if (boyara[i] == ']') {
      tmp++;
      if (boyara[i - 1] == '[') {
        j += 3;
      }
    }
    change(j, tmp, boyara[i] == '[');
    if (boyara[i] == '[') tmp--;
  }
  for (int i = 0; i < toster12 * 2 + 1; i++) {
    for (int k = 0; k < j; k++) cout << toster[i][k];
    cout << endl;
  }
}
