#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > v;
char ans[100][100];
int main(int argc, char** argv) {
  int a, b, c, d, n;
  cin >> a >> b >> c >> d >> n;
  int x = a, y = 1, f = 1;
  while (x) {
    v.push_back({x, y});
    if (y + f > b || y + f <= 0)
      f = -f, --x;
    else
      y += f;
  }
  reverse(v.begin(), v.end());
  x = a + 1, y = 1, f = 1;
  while (x <= a + c) {
    v.push_back({x, y});
    if (y + f > d || y + f <= 0)
      f = -f, ++x;
    else
      y += f;
  }
  puts("YES");
  int now = 0;
  for (int i = 1; i <= max(b, d); i++)
    for (int j = 1; j <= a + c; j++) ans[i][j] = '.';
  for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    while (x--) ans[v[now].second][v[now++].first] = i + 'a' - 1;
  }
  for (int i = 1; i <= max(b, d); i++) {
    for (int j = 1; j <= a + c; j++) cout << ans[i][j];
    puts("");
  }
  return 0;
}
