#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:136777216")
using namespace std;
int bits(int n, int x) { return x == 0 ? 0 : 1 + bits(n, x & (x - 1)); }
int main() {
  int a, b, c, d, n;
  cin >> a >> b >> c >> d >> n;
  int v[50];
  for (int(i) = 0; (i) < (n); (i)++) cin >> v[i];
  int x = a + c, y, dy;
  if (c & 1)
    y = d, dy = -1;
  else
    y = 1, dy = 1;
  int cnt = 0, k = 0, down;
  char r[111][111];
  for (int(i) = 0; (i) < (a * b + c * d); (i)++) {
    r[y][x] = (char)('a' + k);
    cnt++;
    if (1 <= x && x <= a)
      down = b;
    else
      down = d;
    if (down == 1)
      x--, dy = 1;
    else if (y == 1 && dy == -1)
      x--, dy = 1;
    else if (y == down && dy == 1)
      x--, dy = -1;
    else
      y += dy;
    if (cnt == v[k]) cnt = 0, k++;
  }
  cout << "YES\n";
  for (int(i) = 0; (i) < (min(b, d)); (i)++) {
    for (int(j) = 0; (j) < (a + c); (j)++) cout << r[i + 1][j + 1];
    cout << "\n";
  }
  for (int i = min(b, d) + 1; i <= max(b, d); i++) {
    if (b > d) {
      for (int(j) = (1); (j) < (a + 1); (j)++) cout << r[i][j];
      for (int(j) = 0; (j) < (c); (j)++) cout << '.';
    } else {
      for (int(j) = 0; (j) < (a); (j)++) cout << '.';
      for (int(j) = (a + 1); (j) < (a + c + 1); (j)++) cout << r[i][j];
    }
    cout << "\n";
  }
  return 0;
}
