#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b); }
int lcm(int x, int y) {
  int z = gcd(x, y);
  return x * y / z;
}
int main() {
  ios::sync_with_stdio(false);
  int n, m, a, b, c;
  cin >> n >> m >> a >> b >> c;
  int nn = n;
  int mm = m;
  char r[105][105];
  for (int i = 0; i <= 103; i++) {
    for (int j = 0; j <= 103; j++) {
      r[i][j] = '#';
    }
  }
  int qq = 97;
  if (n % 2 == 1 && m % 2 == 1) {
    cout << "IMPOSSIBLE\n";
    return 0;
  } else if (n % 2 == 0 && m % 2 == 0) {
  } else if (n % 2 == 1 && m % 2 == 0) {
    if (a < m / 2) {
      cout << "IMPOSSIBLE\n";
      return 0;
    }
    for (int i = 0; i < m / 2; i++) {
      if (i % 2 == 0) {
        r[n - 1][i * 2] = 'a';
        r[n - 1][i * 2 + 1] = 'a';
      } else {
        r[n - 1][i * 2] = 'b';
        r[n - 1][i * 2 + 1] = 'b';
      }
      a--;
    }
    n--;
  } else if (n % 2 == 0 && m % 2 == 1) {
    if (b < n / 2) {
      cout << "IMPOSSIBLE\n";
      return 0;
    }
    for (int i = 0; i < n / 2; i++) {
      if (i % 2 == 0) {
        r[i * 2][m - 1] = 'a';
        r[i * 2 + 1][m - 1] = 'a';
      } else {
        r[i * 2][m - 1] = 'b';
        r[i * 2 + 1][m - 1] = 'b';
      }
      b--;
    }
    m--;
  }
  char p;
  for (int i = 0; i < n - 1; i += 2) {
    for (int j = 0; j < m - 1; j += 2) {
      if (c > 0) {
        p = 100 + (i / 2) % 2 + (j / 2) % 2;
        r[i][j] = p;
        r[i + 1][j] = p;
        r[i][j + 1] = p;
        r[i + 1][j + 1] = p;
        c--;
      } else if (a >= 2) {
        p = 105 + (j / 2) % 2;
        r[i][j] = p;
        r[i][j + 1] = p;
        p += 1;
        r[i + 1][j] = p;
        r[i + 1][j + 1] = p;
        a -= 2;
      } else if (b >= 2) {
        p = 110 + (i / 2) % 2;
        r[i][j] = p;
        r[i + 1][j] = p;
        p += 1;
        r[i][j + 1] = p;
        r[i + 1][j + 1] = p;
        b -= 2;
      } else {
        cout << "IMPOSSIBLE\n";
        return 0;
      }
    }
  }
  for (int i = 0; i < nn; i++) {
    for (int j = 0; j < mm; j++) {
      cout << r[i][j];
    }
    cout << endl;
  }
  return 0;
}
