#include <bits/stdc++.h>
#define MAX_NM 25
using namespace std;
char a[MAX_NM * 6][MAX_NM * 6];
const string b[7] = {
"",
" ..+---+",
" ./ /|",
" +---+ |",
" | | +",
" | |/.",
" +---+.."
};
short h[MAX_NM + 5][MAX_NM + 5], n, m;
void draw(int x, int y) {
for (int i = 1; i <= 6; i++)
for (int j = 1; j <= 7; j++)
if (b[i][j] != '.')
a[x - i][y + j] = b[6 - i - 1][j];
}
int main() {
cin >> n >> m;
int k = -1, l = m * 4 + 1 + n * 2;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
cin >> h[i][j];
k = max(k, h[i][j] * 3 + 3 + (n - i + 1) + 1);
}
for (int i = 1; i <= k; i++)
for (int j = 1; j <= l; j++)
a[i][j] = '.';
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
int x = k - (n - i) * 2, y = (n - i) * 2 + (j - 1) * 4 + 1;
while (h[i][j]--) {
draw(x, y);
x -= 3;
}
}
for (int i = 1; i <= k; i++) {
for (int j = 1; j <= l; j++)
cout << a[i][j] << ' ';
puts("");
}
return 0;
}