#include <bits/stdc++.h>
using namespace std;
int fx[2][2] = {0, 1, 0, -1};
int h, l, f;
char ans[105][105];
int p[105][105];
int x[55], a, b, c, d, n;
void next() {
  int t1 = h, t2 = l;
  h += fx[f][0];
  l += fx[f][1];
  if (!p[h][l]) {
    h = t1;
    l = t2;
    h++;
    f = 1 - f;
  }
}
int main() {
  cin >> a >> b >> c >> d >> n;
  swap(a, b);
  swap(c, d);
  for (int i = 1; i <= n; i++) cin >> x[i];
  int t = a + b + c + d;
  for (int i = 1; i <= a; i++) {
    for (int j = 1; j <= b; j++) p[i][j] = 1;
  }
  for (int i = 1; i <= c; i++) {
    for (int j = b + 1; j <= d + b; j++) p[i][j] = 1;
  }
  if ((min(a, c) & 1) && c >= a || (min(a, c) & 1) == 0 && c <= a) {
    h = l = 1;
    f = 0;
  } else {
    h = 1;
    l = b + d;
    f = 1;
  }
  for (int i = 1; i <= max(a, c); i++) {
    for (int j = 1; j <= b + d; j++) ans[i][j] = '.';
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= x[i]; j++) {
      ans[h][l] = 'a' + i - 1;
      next();
    }
  }
  puts("YES");
  for (int i = 1; i <= max(a, c); i++) {
    for (int j = 1; j <= b + d; j++) cout << ans[i][j];
    cout << '\n';
  }
  return 0;
}
