#include <bits/stdc++.h>
using namespace std;
const int maxN = 323;
int a[maxN][maxN], n, m;
bool fl1, fl2;
int t(int x, int y) {
  if (min(x, y) < 0) return 0;
  return a[x][y];
}
bool ok(int x, int y, int color) {
  if (min(x, y) < 0 || x >= n || y >= m) return 1;
  return t(x, y) != color;
}
int best(int x, int y) {
  if (y >= m || x >= n) return 5;
  for (int c = 1; c <= 100; c++)
    if (ok(x - 1, y, c) && ok(x, y - 1, c) && ok(x + 1, y, c) &&
        ok(x, y + 1, c))
      return c;
}
void paint(int x, int y) {
  if (y >= m || x >= n) return;
  int c = best(x, y), d;
  d = 1;
  a[x][y] = c;
  int c2 = best(x, y + 1);
  a[x][y] = 0;
  if (c2 >= c) {
    bool flag = 1;
    while (flag) {
      d++;
      for (int i = 0; i < d; i++)
        for (int j = 0; j < d; j++) {
          x += i;
          y += j;
          if (!(x < n && y < m && !a[x][y] && ok(x - 1, y, c) &&
                ok(x, y - 1, c) && ok(x + 1, y, c) && ok(x, y + 1, c)))
            flag = 0;
          x -= i;
          y -= j;
        }
    }
    d--;
  }
  for (int xs = 0; xs < d; xs++)
    for (int ys = 0; ys < d; ys++) a[x + xs][y + ys] = c;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
      if (!a[i][j]) paint(i, j);
  for (int i = 0; i < n; i++, cout << endl)
    for (int j = 0; j < m; j++) cout << char(a[i][j] - 1 + 'A');
  cin >> n;
}
