#include <bits/stdc++.h>
using namespace std;
int n, m, a, b, c;
char s[105][105];
set<char> myset;
bool inmap(int x, int y) { return 0 <= x && x < n && 0 <= y && y < m; }
int step[4][2] = {0, 1, 0, -1, 1, 0, -1, 0};
void hehe(int x, int y) {
  for (int i = 0; i < 4; i++) {
    int nowx = step[i][0] + x, nowy = step[i][1] + y;
    if (!inmap(nowx, nowy) || !s[nowx][nowy]) continue;
    myset.insert(s[nowx][nowy]);
  }
}
char find(int x1, int y1, int x2, int y2) {
  myset.clear();
  for (int i = x1; i <= x2; i++)
    for (int j = y1; j <= y2; j++) hehe(i, j);
  for (int i = 0; i < 26; i++)
    if (myset.find(i + 'a') == myset.end()) return i + 'a';
}
bool work() {
  if ((n & 1) && (m & 1)) return false;
  if (n * m > (2 * a + 2 * b + 4 * c)) return false;
  memset(s, 0, sizeof s);
  int h = 0, l = 0;
  if (n & 1) {
    for (int i = 0; i < m; i += 2)
      s[0][i] = s[0][i + 1] = find(0, i, 0, i + 1), a--;
    if (a < 0) return false;
    h = 1;
  }
  if (m & 1) {
    for (int i = 0; i < n; i += 2)
      s[i][0] = s[i + 1][0] = find(i, 0, i + 1, 0), b--;
    if (b < 0) return false;
    l = 1;
  }
  a -= (a & 1);
  b -= (b & 1);
  if ((n - h) * (m - l) > (2 * a + 2 * b + 4 * c)) return false;
  int i;
  for (i = h; i < n; i += 2) {
    int j = l;
    while (a >= 2 && j < m) {
      s[i][j] = s[i][j + 1] = find(i, j, i, j + 1);
      s[i + 1][j] = s[i + 1][j + 1] = find(i + 1, j, i + 1, j + 1);
      j += 2;
      a -= 2;
    }
    while (b >= 2 && j < m) {
      s[i][j] = s[i + 1][j] = find(i, j, i + 1, j);
      s[i][j + 1] = s[i + 1][j + 1] = find(i, j + 1, i + 1, j + 1);
      j += 2;
      b -= 2;
    }
    while (c && j < m) {
      s[i][j] = s[i][j + 1] = s[i + 1][j] = s[i + 1][j + 1] =
          find(i, j, i + 1, j + 1);
      j += 2;
      c--;
    }
    if (j < m) return false;
  }
  if (i < n) return false;
  return true;
}
int main() {
  while (~scanf("%d %d %d %d %d", &n, &m, &a, &b, &c)) {
    bool ans = work();
    if (ans) {
      for (int i = 0; i < n; i++) puts(s[i]);
    } else
      puts("IMPOSSIBLE");
  }
  return 0;
}
