#include <bits/stdc++.h>
using namespace std;
int m, n;
char ans[110][110];
bool Able(int x, int y, char c) {
  static const int dx[] = {1, -1, 0, 0};
  static const int dy[] = {0, 0, 1, -1};
  int i;
  for (i = 0; i < 4; i++)
    if (ans[x + dx[i]][y + dy[i]] == c) return false;
  return true;
}
void Extend(int x, int y) {
  int i, j;
  for (i = 'A'; i <= 'Z'; i++)
    if (Able(x, y, i)) {
      ans[x][y] = i;
      break;
    }
  for (i = 2; x + i - 1 <= m && y + i - 1 <= n; i++) {
    for (j = 'A'; j < ans[x][y]; j++)
      if (Able(x, y + i - 1, j)) return;
    for (j = x; j <= x + i - 1; j++)
      if (ans[j][y + i - 1]) return;
    for (j = y; j <= y + i - 1; j++)
      if (ans[x + i - 1][j]) return;
    if (ans[x - 1][y + i - 1] == ans[x][y]) return;
    if (ans[x + i - 1][y - 1] == ans[x][y]) return;
    for (j = x; j <= x + i - 1; j++)
      if (ans[j][y + i] == ans[x][y]) return;
    for (j = y; j <= y + i - 1; j++)
      if (ans[x + i][j] == ans[x][y]) return;
    for (j = x; j <= x + i - 1; j++) ans[j][y + i - 1] = ans[x][y];
    for (j = y; j <= y + i - 1; j++) ans[x + i - 1][j] = ans[x][y];
  }
}
int main() {
  int i, j;
  cin >> m >> n;
  for (i = 1; i <= m; i++)
    for (j = 1; j <= n; j++)
      if (!ans[i][j]) Extend(i, j);
  for (i = 1; i <= m; i++) puts(ans[i] + 1);
  return 0;
}
