#include <iostream>
using namespace std;

const int N = 2007;
const char* P[] = {
"  +---+",
" /   /|",
"+---+ |",
"|   | +",
"|   |/ ",
"+---+  "};
int a[507][507];
char c[N][N];

inline void Draw(int x, int y)
{
	int i, j;
	for (j = 0; j < 5; ++j) c[x - 1][y + j] = P[5][j];
	for (j = 0; j < 6; ++j) c[x - 2][y + j] = P[4][j];
	for (i = 2; i < 4; ++i)
		for (j = 0; j < 7; ++j) c[x - i - 1][y + j] = P[5 - i][j];
	for (j = 1; j < 7; ++j) c[x - 5][y + j] = P[1][j];
	for (j = 2; j < 7; ++j) c[x - 6][y + j] = P[0][j];
}

int main()
{
	int n, m, h, w, i, j, k = 0, l = 0;
	
	fill(c[0], c[0] + N * N, '.');
	cin >> n >> m;
	for (i = 0; i < n; ++i)
	{
		for (j = 0; j < m; ++j)
		{
			cin >> a[i][j];
			k = max(k, 3 * a[i][j] + 3);
		}
		k += 2;
	}
	k -= 2;
	l = (m << 2) + (n << 1) + 1;
	for (i = 0; i < n; ++i)
		for (j = 0; j < m; ++j)
		{
			h = k - ((n - i - 1) << 1);
			w = ((n - i - 1) << 1) + (j << 2);
			while (a[i][j]--)
			{
				Draw(h, w);
				h -= 3;
			}
		}
	
	for (i = 0; i < k; ++i)
	{
		for (j = 0; j < l; ++j) cout << c[i][j];
		cout << endl;
	}
	
	return 0;
}

/**************************************************************
	Problem: 2279
	User: admin
	Language: C++
	Result: Accepted
	Time:105 ms
	Memory:7016 kb
****************************************************************/