#include <bits/stdc++.h>
using namespace std;
int n, len, tmp, wid, st;
char ch[101];
char mp[1000][1000];
void put_left(int x, int y, int z) {
  mp[z][x] = mp[z + y + 1][x] = '+';
  mp[z][x + 1] = mp[z + y + 1][x + 1] = '-';
  for (int i = z + 1; i <= z + y; i++) mp[i][x] = '|';
}
void put_right(int x, int y, int z) {
  mp[z][x] = mp[z + y + 1][x] = '+';
  mp[z][x - 1] = mp[z + y + 1][x - 1] = '-';
  for (int i = z + 1; i <= z + y; i++) mp[i][x] = '|';
}
int main() {
  scanf("%d", &n);
  scanf("%s", ch + 1);
  for (int i = 1; i <= n; i++) {
    if (ch[i] == '[')
      tmp++;
    else
      tmp--;
    len = max(len, 2 * tmp - 1);
  }
  tmp = len;
  st = 1;
  for (int i = 1; i <= n; i++)
    if (ch[i] == '[') {
      wid++;
      put_left(wid, tmp, st);
      tmp -= 2;
      st++;
    } else {
      if (ch[i - 1] == '[') wid += 3;
      wid++;
      tmp += 2;
      st--;
      put_right(wid, tmp, st);
    }
  for (int i = 1; i <= len + 2; i++, putchar('\n'))
    for (int j = 1; j <= wid; j++)
      if (mp[i][j])
        putchar(mp[i][j]);
      else
        putchar(' ');
  return 0;
}
