#include <bits/stdc++.h>
using namespace std;
const int h = 111;
int n, m, a, b, c, N;
char res[h][h];
int main() {
  scanf("%d%d%d%d%d", &n, &m, &a, &b, &c);
  if (n % 2 == 1 && m % 2 == 1) {
    puts("IMPOSSIBLE");
    return 0;
  }
  int q = 0;
  N = n;
  if (n % 2 == 1) {
    for (int i = 0; i < m; i += 2) {
      res[n - 1][i] = res[n - 1][i + 1] = q == 0 ? 'a' : 'b';
      a--;
      q ^= 1;
    }
    n--;
  }
  q = 0;
  if (m % 2 == 1) {
    for (int i = 0; i < n; i += 2) {
      res[i][m - 1] = res[i + 1][m - 1] = q == 0 ? 'c' : 'd';
      b--;
      q ^= 1;
    }
    m--;
  }
  if (a < 0 || b < 0) {
    puts("IMPOSSIBLE");
    return 0;
  }
  q = 0;
  for (int i = 0; i < n; i += 2) {
    int t = 0;
    for (int j = 0; j < m; j += 2) {
      if (c > 0) {
        res[i][j] = res[i + 1][j] = res[i][j + 1] = res[i + 1][j + 1] =
            q == 0   ? t == 0 ? 'e' : 'f'
            : t == 1 ? 'e'
                     : 'f';
        c--;
      } else if (b >= 2) {
        res[i][j] = res[i + 1][j] = q == 0 ? 'g' : 'h';
        res[i][j + 1] = res[i + 1][j + 1] = q == 0 ? 'h' : 'g';
        b -= 2;
      } else if (a >= 2) {
        res[i][j] = res[i][j + 1] = t == 0 ? 'i' : 'j';
        res[i + 1][j] = res[i + 1][j + 1] = t == 0 ? 'j' : 'i';
        a -= 2;
      } else {
        puts("IMPOSSIBLE");
        return 0;
      }
      t ^= 1;
    }
    q ^= 1;
  }
  for (int i = 0; i < N; i++) puts(res[i]);
  return 0;
}
