#include <bits/stdc++.h>
using namespace std;
const int P = 1e9 + 7;
int add(int a, int b) {
  if ((a += b) >= P) a -= P;
  return a;
}
int sub(int a, int b) {
  if ((a -= b) < 0) a += P;
  return a;
}
int mul(int a, int b) { return 1ll * a * b % P; }
int kpow(int a, int b) {
  int r = 1;
  for (; b; b >>= 1, a = mul(a, a)) {
    if (b & 1) r = mul(r, a);
  }
  return r;
}
const int N = 205;
int a, b, c, w, n, m, p1, p2;
char ans[N][N];
bool vis[200];
bool solve(int n, int m) {
  if (n * m % 2 == 1) return 0;
  if (n % 2 == 1) {
    if (m / 2 > a) return 0;
    a -= m / 2;
    for (int i = 1; i <= m; i += 2)
      ans[n][i] = ans[n][i + 1] = (i / 2 % 2 == 0 ? 'a' : 'b');
    n--;
  }
  if (m % 2 == 1) {
    if (n / 2 > b) return 0;
    b -= n / 2;
    for (int i = 1; i <= n; i += 2)
      ans[i][m] = ans[i + 1][m] = (i / 2 % 2 == 0 ? 'a' : 'b');
    m--;
  }
  if (a & 1) a--;
  if (b & 1) b--;
  if (n * m > a * 2 + b * 2 + c * 4) return 0;
  for (int i = 1; i <= n; i += 2)
    for (int j = 1; j <= m; j += 2) {
      for (int k = ('a'); k < ('z' + 1); k++) vis[k] = 0;
      vis[ans[i - 1][j]] = 1;
      vis[ans[i - 1][j + 1]] = 1;
      vis[ans[i][j - 1]] = 1;
      vis[ans[i + 1][j - 1]] = 1;
      for (int k = ('c'); k < ('z' + 1); k++)
        if (!vis[k]) {
          p1 = k;
          vis[p1] = 1;
          break;
        }
      for (int k = ('c'); k < ('z' + 1); k++)
        if (!vis[k]) {
          p2 = k;
          vis[p2] = 1;
          break;
        }
      if (a > 0) {
        a -= 2;
        ans[i][j] = ans[i][j + 1] = p1;
        ans[i + 1][j] = ans[i + 1][j + 1] = p2;
      } else if (b > 0) {
        b -= 2;
        ans[i][j] = ans[i + 1][j] = p1;
        ans[i][j + 1] = ans[i + 1][j + 1] = p2;
      } else {
        c--;
        ans[i][j] = ans[i][j + 1] = ans[i + 1][j] = ans[i + 1][j + 1] = p1;
      }
    }
  return 1;
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);
  cin >> n >> m >> a >> b >> c;
  bool ok = solve(n, m);
  if (!ok)
    cout << "IMPOSSIBLE"
         << "\n";
  else {
    for (int i = (1); i < (n + 1); i++) {
      for (int j = (1); j < (m + 1); j++) cout << ans[i][j];
      cout << "\n";
    }
  }
  return 0;
}
