#include <bits/stdc++.h>
using namespace std;
int n, m, change[4][2] = {1, 0, -1, 0, 0, 1, 0, -1};
char mapn[110][110];
void build(int a, int b, char c) {
  int aa, bb;
  aa = n - a - 1;
  bb = m - b - 1;
  if (aa > bb) {
    for (int i = 0; i <= bb; i++)
      for (int j = 0; j <= bb; j++) mapn[a + i][b + j] = c;
  } else {
    for (int i = 0; i <= aa; i++)
      for (int j = 0; j <= aa; j++) mapn[a + i][b + j] = c;
  }
}
void check(int a, int b) {
  if (mapn[a][b]) return;
  int flag = 0;
  int aa = 0, bb = 0, cc = 0;
  char c;
  for (int i = 0; i < 4; i++) {
    c = mapn[a + change[i][0]][b + change[i][1]];
    if (c == 'A') aa = 1;
    if (c == 'B') bb = 1;
    if (c == 'C') cc = 1;
  }
  if (!aa && mapn[a][b + 1] == '\0') {
    if (a == 0) {
      build(a, b, 'A');
      return;
    }
    for (int i = 0; i <= m - b - 1; i++)
      if (mapn[a - 1][b + i] == 'A') {
        flag = 1;
        break;
      }
    if (flag)
      mapn[a][b] = 'A';
    else
      build(a, b, 'A');
  } else {
    if (!aa)
      mapn[a][b] = 'A';
    else if (aa && bb && cc)
      mapn[a][b] = 'D';
    else if (aa && bb)
      mapn[a][b] = 'C';
    else if (mapn[a][b + 1]) {
      if (!bb)
        mapn[a][b] = 'B';
      else if (!cc)
        mapn[a][b] = 'C';
    } else {
      for (int i = 0; i <= m - b - 1; i++)
        if (mapn[a - 1][b + i] == 'A') {
          build(a, b, 'B');
          break;
        }
    }
    if (aa == 1 && bb == 0) mapn[a][b] = 'B';
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) check(i, j);
  for (int i = 0; i < n; i++) printf("%s\n", mapn[i]);
  return 0;
}
