#include <bits/stdc++.h>
using namespace std;
int a, b, c, d, n, m, i, j, k, x, y, t;
bool ch, di;
char s[120][120], ca;
int main() {
  cin >> a >> b >> c >> d >> n;
  if (b > d) {
    ch = true;
    swap(b, d);
    swap(a, c);
  }
  if (a % 2 == 0) {
    di = true;
    x = 1;
    y = 1;
  } else {
    di = false;
    x = 1;
    y = d;
  }
  for (int i = 0; i < n; i++) {
    cin >> t;
    ca = 'a' + i;
    while (t) {
      if (di) {
        if (x <= a) {
          if (y <= b) {
            s[x][y] = ca;
            t--;
            y++;
          } else if (y < d) {
            s[x][y] = '.';
            y++;
          } else {
            s[x][y] = '.';
            di = false;
            x++;
          }
        } else {
          if (y < d) {
            s[x][y] = ca;
            t--;
            y++;
          } else {
            s[x][y] = ca;
            t--;
            di = false;
            x++;
          }
        }
      } else {
        if (x <= a) {
          if (y == 1) {
            s[x][y] = ca;
            t--;
            x++;
            di = true;
          } else if (y <= b) {
            s[x][y] = ca;
            t--;
            y--;
          } else {
            s[x][y] = '.';
            y--;
          }
        } else {
          if (y == 1) {
            s[x][y] = ca;
            t--;
            x++;
            di = true;
          } else {
            s[x][y] = ca;
            t--;
            y--;
          }
        }
      }
    }
  }
  cout << "YES" << endl;
  if (ch) {
    for (int i = 1; i <= d; i++) {
      for (int j = a + c; j >= 1; j--) cout << s[j][i];
      cout << endl;
    }
  } else {
    for (int i = 1; i <= d; i++) {
      for (int j = 1; j <= a + c; j++) cout << s[j][i];
      cout << endl;
    }
  }
  return 0;
}
