#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 3;
const int mod = 1e9 + 7;
int x[N];
int main() {
  int a, b, c, d, n;
  cin >> a >> b >> c >> d >> n;
  for (int i = 0; i < n; i++) cin >> x[i];
  vector<string> v(max(b, d));
  int j = 0, cnt = 0;
  int done = x[j], left = (b > cnt) * a + (d > cnt) * c;
  while (cnt < max(b, d) and j < n) {
    int mn = min(done, left);
    v[cnt] += string(mn, (char)('a' + j));
    done -= mn;
    left -= mn;
    if (done == 0) {
      j++;
      done = x[j];
    }
    if (left == 0) {
      cnt++;
      left = (b > cnt) * a + (d > cnt) * c;
    }
  }
  string temp(b < d ? a : c, '.');
  int f = (b < d) ^ (min(b, d) % 2);
  for (auto &i : v) {
    if (f) reverse(i.begin(), i.end());
    if (i.size() < a + c) i = (b < d) ? temp + i : i + temp;
    f = !f;
  }
  cout << "YES" << endl;
  for (auto i : v) cout << i << endl;
  return 0;
}
