#include <bits/stdc++.h>
using namespace std;
int n, m;
char a[100][100];
char color(int i, int j) {
  bool u[26] = {0};
  if (i > 0 && a[i - 1][j]) u[a[i - 1][j] - 'A'] = true;
  if (i < n - 1 && a[i + 1][j]) u[a[i + 1][j] - 'A'] = true;
  if (j > 0 && a[i][j - 1]) u[a[i][j - 1] - 'A'] = true;
  if (j < m - 1 && a[i][j + 1]) u[a[i][j + 1] - 'A'] = true;
  char c = 'A';
  while (u[c - 'A']) c++;
  return c;
}
int main() {
  scanf("%d%d", &n, &m);
  int i = 0, j = 0;
  while (true) {
    while (a[i][j]) {
      j++;
      if (j == m) {
        j = 0;
        if (++i == n) {
          for (i = 0; i < n; i++) {
            for (j = 0; j < m; j++) putchar(a[i][j]);
            putchar('\n');
          }
          return 0;
        }
      }
    }
    char c = color(i, j);
    a[i][j] = c;
    for (int siz = 2;; siz++) {
      if (i + siz > n || j + siz > m) break;
      bool ok = true;
      for (int k = 0; k < siz; k++)
        if (a[i + k][j + siz - 1] || a[i + siz - 1][j + k]) {
          ok = false;
          break;
        }
      if (!ok) break;
      if (color(i, j + siz - 1) < c) break;
      if (i > 0 && a[i - 1][j + siz - 1] == c) break;
      if (j > 0 && a[i + siz - 1][j - 1] == c) break;
      if (j + siz < m)
        for (int k = 0; k < siz; k++)
          if (a[i + k][j + siz] == c) {
            ok = false;
            break;
          }
      if (!ok) break;
      if (i + siz < n)
        for (int k = 0; k < siz; k++)
          if (a[i + siz][j + k] == c) {
            ok = false;
            break;
          }
      if (!ok) break;
      for (int k = 0; k < siz; k++) {
        a[i + k][j + siz - 1] = c;
        a[i + siz - 1][j + k] = c;
      }
    }
  }
}
