#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
const long long N = 222;
long long s[N][N];
long long n, m, A, B, C;
long long a[N][N];
const long long dx[4] = {-1, 0, 1, 0};
const long long dy[4] = {0, -1, 0, 1};
const long long col[6][4] = {{1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1},
                             {1, 0, 0, 1}, {1, 1, 1, 1}, {0, 0, 0, 0}};
inline bool avl(long long p, long long q) {
  return p >= 1 && p <= n && q >= 1 && q <= m;
}
inline void fill(long long p, long long q) {
  long long co[4] = {-1, -1, -1, -1};
  for (long long k = (0); k <= (3); ++k) {
    long long i = p + dx[k], j = q + dy[k];
    if (avl(i, j) && a[i][j] != -1) {
      co[k] = col[a[i][j]][k ^ 2];
    }
  }
  long long maxx = 0, id = 0;
  for (long long k = (0); k <= (3); ++k) {
    long long ret = 0;
    for (long long i = (0); i <= (3); ++i) ret += co[i] == col[k][i];
    if (ret > maxx) maxx = ret, id = k;
  }
  a[p][q] = id;
}
int main() {
  n = read(), m = read(), A = read(), B = read(), C = read();
  long long x = 0, y = 0;
  memset(a, -1, sizeof(a));
  for (long long i = (1); i <= (n); ++i)
    for (long long j = (1); j <= (m); ++j) {
      if (x || y) break;
      if (A--)
        a[i][j] = 4;
      else {
        A = 0;
        x = i, y = j;
      }
    }
  long long now = 0;
  for (long long j = (y); j <= (m); ++j) a[x][j] = now, now ^= 3;
  x++;
  if (x <= n) {
    long long yy = y - 1;
    for (long long j = (m); j >= (y); --j)
      if (B--)
        a[x][j] = 5;
      else {
        B = 0;
        yy = j;
        break;
      }
    now = 1;
    for (long long j = (yy); j >= (y); --j) a[x][j] = now, now ^= 3;
    now ^= 1;
    for (long long j = (y - 1); j >= (1); --j) a[x][j] = now, now ^= 3;
    for (long long i = (x + 1); i <= (n); ++i)
      for (long long j = (m); j >= (1); --j) {
        if (B--)
          a[i][j] = 5;
        else
          B = 0, fill(i, j);
      }
  }
  for (long long i = (1); i <= (n); ++i)
    for (long long j = (1); j <= (m); ++j) switch (a[i][j]) {
        case 0:
          s[i * 2 - 1][j * 2 - 1] = '#', s[i * 2 - 1][j * 2] = '/',
                               s[i * 2][j * 2 - 1] = '/', s[i * 2][j * 2] = '.';
          break;
        case 1:
          s[i * 2 - 1][j * 2 - 1] = '\\', s[i * 2 - 1][j * 2] = '.',
                               s[i * 2][j * 2 - 1] = '#',
                               s[i * 2][j * 2] = '\\';
          break;
        case 2:
          s[i * 2 - 1][j * 2 - 1] = '.', s[i * 2 - 1][j * 2] = '/',
                               s[i * 2][j * 2 - 1] = '/', s[i * 2][j * 2] = '#';
          break;
        case 3:
          s[i * 2 - 1][j * 2 - 1] = '\\', s[i * 2 - 1][j * 2] = '#',
                               s[i * 2][j * 2 - 1] = '.',
                               s[i * 2][j * 2] = '\\';
          break;
        case 4:
          for (long long ii = (i * 2 - 1); ii <= (i * 2); ++ii)
            for (long long jj = (j * 2 - 1); jj <= (j * 2); ++jj)
              s[ii][jj] = '#';
          break;
        case 5:
          for (long long ii = (i * 2 - 1); ii <= (i * 2); ++ii)
            for (long long jj = (j * 2 - 1); jj <= (j * 2); ++jj)
              s[ii][jj] = '.';
          break;
      }
  for (long long i = (1); i <= (2 * n); ++i) {
    for (long long j = (1); j <= (2 * m); ++j) putchar(s[i][j]);
    putchar(10);
  }
}
