#include <bits/stdc++.h>
using namespace std;
int n, k, aa, b, c, d, r[110][110] = {0}, a[50], g[110] = {0};
bool f[110][110] = {0};
void bfs(int u, int v) {
  int x, y, i, j, p, m = 0;
  bool ff = true;
  x = u;
  y = v;
  f[x][y] = 0;
  g[x]++;
  r[x][y] = k;
  a[k]--;
  if (a[k] == 0) k--;
  if (f[x][y - 1] == 1) {
    f[x][y - 1] = 0;
    bfs(x, y - 1);
  }
  if (f[x][y + 1] == 1) {
    f[x][y + 1] = 0;
    bfs(x, y + 1);
  }
  if (b > d && x > d)
    m = aa;
  else if (d > b && x > b)
    m = c;
  else
    m = aa + c;
  if (f[x - 1][y] == 1 && g[x] == m) {
    f[x - 1][y] = 0;
    bfs(x - 1, y);
  }
}
int main() {
  int m, i, si, sj, j;
  cin >> aa >> b >> c >> d >> n;
  k = n;
  for (i = 1; i <= n; i++) cin >> a[i];
  a[0] = 0;
  for (i = 0; i < 110; i++)
    for (j = 0; j < 110; j++) r[i][j] = 0;
  for (i = 1; i <= b; i++) {
    for (j = 1; j <= aa; j++) f[i][j] = 1;
    g[i] = 0;
  }
  for (i = 1; i <= d; i++) {
    for (j = aa + c; j >= aa + 1; j--) f[i][j] = 1;
    g[i] = 0;
  }
  if (b > d) {
    si = b;
    sj = 1;
  } else {
    si = d;
    sj = aa + c;
  }
  bool ff = true;
  if (b > d) {
    if (d % 2 == 0)
      ff = 1;
    else
      ff = 0;
  } else {
    if (b % 2 == 0)
      ff = 0;
    else
      ff = 1;
  }
  if (ff)
    j = 1;
  else
    j = c + aa;
  for (i = 1; i <= min(b, d); i++) {
    if (ff)
      for (j = 1; j <= c + aa; j++) {
        r[i][j] = k;
        a[k]--;
        if (a[k] == 0) k--;
      }
    else
      for (j = c + aa; j >= 1; j--) {
        r[i][j] = k;
        a[k]--;
        if (a[k] == 0) k--;
      }
    if (ff)
      ff = 0;
    else
      ff = 1;
  }
  if (b > d) {
    si = 1;
    sj = aa;
  } else {
    si = aa + 1;
    sj = aa + c;
  }
  for (i = min(b, d) + 1; i <= max(b, d); i++) {
    if (ff)
      for (j = si; j <= sj; j++) {
        r[i][j] = k;
        a[k]--;
        if (a[k] == 0) k--;
      }
    else
      for (j = sj; j >= si; j--) {
        r[i][j] = k;
        a[k]--;
        if (a[k] == 0) k--;
      }
    if (ff)
      ff = 0;
    else
      ff = 1;
  }
  cout << "YES" << endl;
  for (i = 1; i <= max(b, d); i++) {
    for (j = 1; j <= aa + c; j++) {
      if (r[i][j] == 0)
        cout << ".";
      else
        cout << char(r[i][j] + 96);
    }
    cout << endl;
  }
}
