#include <bits/stdc++.h>
using namespace std;
const int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
char s[105][105];
int flag[15];
int n, m;
void draw(int x, int y, int num, int sign) {
  for (int i = 0; i < num; i++)
    for (int j = 0; j < num; j++) s[x + i][y + j] = sign;
}
int get(int x, int y) {
  memset(flag, 0, sizeof(flag));
  for (int i = 0; i < 4; i++) {
    int p = x + dir[i][0];
    int q = y + dir[i][1];
    flag[s[p][q]] = 1;
  }
  for (int i = 0; i < 15; i++)
    if (flag[i] == 0) return i;
}
void solve(int x, int y) {
  if (x > n) return;
  if (y > m) {
    y = 1;
    x++;
  }
  if (s[x][y]) {
    solve(x, y + 1);
    return;
  }
  int sign = get(x, y);
  int num = 1;
  while (1) {
    if (num + x > n || num + y > m) break;
    if (s[x][y + num]) break;
    if (get(x, y + num) != sign) break;
    num++;
  }
  draw(x, y, num, sign);
  solve(x, y + num);
}
int main() {
  int i, j, k;
  while (cin >> n >> m) {
    memset(s, 0, sizeof(s));
    solve(1, 1);
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= m; j++) printf("%c", s[i][j] + 'A' - 1);
      cout << endl;
    }
  }
}
