#include <bits/stdc++.h>
using namespace std;
int x[30];
char M[105][105];
int uk = 0;
void pr(int x0, int y0, int dx, int dy, int a, int b) {
  int i, j;
  if (x[uk] == 0) ++uk;
  M[x0][y0] = uk + 'a';
  --x[uk];
  for (i = 0; i < a; ++i) {
    for (j = 1; j < b; ++j) {
      x0 += dx;
      if (x[uk] == 0) ++uk;
      M[x0][y0] = uk + 'a';
      --x[uk];
    }
    y0 += dy;
    dx *= -1;
    if (x[uk] == 0) ++uk;
    M[x0][y0] = uk + 'a';
    --x[uk];
  }
}
int main() {
  int a, b, c, d, n, i, j;
  scanf("%d%d%d%d%d", &a, &b, &c, &d, &n);
  for (i = 0; i < n; ++i) scanf("%d", &x[i]);
  if (b >= d) {
    if (a % 2 == 0)
      pr(0, 0, 1, 1, a, b);
    else
      pr(b - 1, 0, -1, 1, a, b);
    ++x[uk];
    pr(0, a, 1, 1, c, d);
  } else {
    if (c % 2 != 0)
      pr(d - 1, a + c - 1, -1, -1, c, d);
    else
      pr(0, a + c - 1, 1, -1, c, d);
    ++x[uk];
    pr(0, a - 1, 1, -1, a, b);
  }
  printf("YES\n");
  for (i = 0; i < max(b, d); ++i) {
    for (j = 0; j < a + c; ++j)
      if ('a' <= M[i][j] && M[i][j] <= 'z')
        printf("%c", M[i][j]);
      else
        printf(".");
    printf("\n");
  }
  return 0;
}
