#include using namespace std; int N; string S; char A[50][100000]; int findPos(string S) { int pos = -1; if (S.find('2') != string::npos) { return 7; } if (S[0] >= 'C') { return S[0] - 'C'; } return S[0] - 'A' + 5; } char aux[11][11] = { "----|-\\---", " | } ", "----|-/---", " |/ 4", "---/|-----", " / | 4", "-{--|-\\---", " \\_|_/ ", "----|\\----", " |_} " }; int main() { // freopen("date.in", "r", stdin); // freopen("date.out","w", stdout); cin.sync_with_stdio(false); cin >> N; int LIM = (N + 3) * 5; int LINES = 11; for (int i = 0; i < LINES - 2; i += 2) { for (int j = 0; j < LIM; j++) { A[i][j] = '-'; } } for (int i = 1; i < LINES; i += 2) { for (int j = 0; j < LIM; j++) { A[i][j] = ' '; } } for (int j = 0; j < LIM; j++) { A[LINES - 1][j] = ' '; } for (int i = 0; i < LINES - 1; i++) { for (int j = 0; j < 10; j++) { A[i][j] = aux[i][j]; } } A[0][LIM - 1] = '+'; A[LINES - 3][LIM - 1] = '+'; int cnt = 0; while (N--) { cin >> S; int M = (int) S.size(); int pos = findPos(S); bool sh = (S.find('#') != string::npos); cnt++; int j = (cnt + 2) * 5; int i = LINES - 1 - pos; A[i][j] = ')'; A[i][j - 1] = '@'; A[i][j - 2] = '('; if (sh) { A[i][j - 3] = '#'; } cerr << i << endl; if (pos >= 6) { // in jos A[i + 1][j - 2] = '|'; A[i + 2][j - 2] = '|'; A[i + 3][j - 2] = '|'; } else { A[i - 1][j] = '|'; A[i - 2][j] = '|'; A[i - 3][j] = '|'; } } for (int i = 0; i < LINES; i++) { printf("%s\n", A[i]); } return 0; }