#include <bits/stdc++.h>
using namespace std;
const int N = 26;
const int M = 105;
int a, b, c, d, n, x, y, f, Begin, End;
char s;
int X[N];
char Map[M][M];
int main() {
  cin >> a >> b >> c >> d >> n;
  for (int i = 1; i <= n; i++) cin >> X[i];
  for (int i = min(b, d) + 1; i <= max(b, d); i++) {
    if (b < d)
      for (int j = 1; j <= a; j++) Map[i][j] = '.';
    else
      for (int j = a + 1; j <= a + c; j++) Map[i][j] = '.';
  }
  x = 1;
  Begin = 1;
  End = a + c;
  if (b > d) {
    if (d % 2 == 0)
      y = 1, f = 1;
    else
      y = a + c, f = -1;
  } else {
    if (b % 2 == 0)
      y = a + c, f = -1;
    else
      y = 1, f = 1;
  }
  for (int i = 1; i <= n; i++) {
    s = char('a' + i - 1);
    for (int j = 1; j <= X[i]; j++) {
      Map[x][y] = s;
      y += f;
      if (y < Begin) {
        y = Begin;
        x++;
        f = 1;
      } else if (y > End) {
        y = End;
        x++;
        f = -1;
      }
      if (b > d && x > d) {
        End = a;
        y = min(y, a);
      }
      if (b < d && x > b) {
        Begin = a + 1;
        y = max(y, a + 1);
      }
    }
  }
  cout << "YES" << endl;
  for (int i = 1; i <= max(b, d); i++) {
    for (int j = 1; j <= a + c; j++) {
      cout << Map[i][j];
    }
    cout << endl;
  }
  return 0;
}
