#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  string a;
  cin >> n >> a;
  stack<char> q;
  int m = 1;
  int len = 0;
  int he = -1;
  for (int i = 0; i < n; i++) {
    if (q.empty() || q.top() == a[i]) {
      q.push(a[i]);
      len++;
      m += 2;
    } else {
      if (a[i] != a[i - 1]) len += 3;
      if (a[i] == '[' && a[i - 1] == ']') len += 4;
      q.pop();
      len++;
      m -= 2;
    }
    he = max(he, m);
  }
  vector<vector<char>> res(len, vector<char>(he, ' '));
  m = 0;
  int cur = 0;
  for (int i = 0; i < n; i++) {
    if (i != 0 && a[i] == a[i - 1] && a[i] == '[')
      m++;
    else if (i != 0 && a[i] == a[i - 1] && a[i] == ']')
      m--;
    if (a[i] == '[') {
      res[cur][m] = '+';
      res[cur][he - m - 1] = '+';
      res[cur + 1][m] = '-';
      res[cur + 1][he - m - 1] = '-';
      for (int j = m + 1; j < he - m - 1; j++) res[cur][j] = '|';
    } else {
      if (a[i] == ']' && a[i - 1] == '[') cur += 3;
      res[cur - 1][m] = '-';
      res[cur - 1][he - m - 1] = '-';
      res[cur][m] = '+';
      res[cur][he - m - 1] = '+';
      for (int j = m + 1; j < he - m - 1; j++) res[cur][j] = '|';
    }
    cur++;
  }
  for (int i = 0; i < he; i++) {
    for (int j = 0; j < len; j++) cout << res[j][i];
    cout << "\n";
  }
  return 0;
}
