#include <bits/stdc++.h>
using namespace std;
int main() {
  char mp[110][110];
  int n, m, a, b, c, n1, m1;
  int i, j;
  scanf("%d %d %d %d %d", &n, &m, &a, &b, &c);
  n1 = n;
  m1 = m;
  if (n % 2 == 1 && m % 2 == 1) {
    puts("IMPOSSIBLE");
    return 0;
  }
  if (n % 2 == 1) {
    i = 1;
    while (i <= m) {
      mp[n][i] = mp[n][i + 1] = 'x' + i % 4 - 1;
      a--;
      i += 2;
      if (a < 0) {
        puts("IMPOSSIBLE");
        return 0;
      }
    }
    --n;
  }
  if (m % 2 == 1) {
    i = 1;
    while (i <= n) {
      mp[i][m] = mp[i + 1][m] = 'x' + i % 4 - 1;
      b--;
      i += 2;
      if (b < 0) {
        puts("IMPOSSIBLE");
        return 0;
      }
    }
    --m;
  }
  for (i = 1; i <= n; i += 2) {
    for (j = 1; j <= m; j += 2) {
      if (c > 0) {
        mp[i][j] = mp[i][j + 1] = mp[i + 1][j] = mp[i + 1][j + 1] =
            'f' + (i + j) % 4 - 1;
        c--;
        continue;
      }
      if (a > 1) {
        mp[i][j] = mp[i][j + 1] = 'f' + (i + j) % 4 - 1;
        mp[i + 1][j] = mp[i + 1][j + 1] = 'f' + (i + j) % 4;
        a -= 2;
        continue;
      }
      if (b > 1) {
        mp[i][j] = mp[i + 1][j] = 'f' + (i + j) % 4 - 1;
        mp[i][j + 1] = mp[i + 1][j + 1] = 'f' + (i + j) % 4;
        b -= 2;
        continue;
      }
      puts("IMPOSSIBLE");
      return 0;
    }
  }
  for (i = 1; i <= n1; ++i) {
    for (j = 1; j <= m1; ++j) {
      printf("%c", mp[i][j]);
    }
    printf("\n");
  }
  return 0;
}
