#include <bits/stdc++.h>
using namespace std;
int n, m, a[105][105];
inline int get(int x, int y) {
  bool vis[11];
  for (register int i = 0; i <= 10; i++) vis[i] = 0;
  vis[a[x - 1][y]] = vis[a[x + 1][y]] = vis[a[x][y - 1]] = vis[a[x][y + 1]] = 1;
  for (register int i = 1; i <= 10; i++) {
    if (!vis[i]) return i;
  }
  return 0;
}
inline void draw(int x, int y, int p, int sign) {
  for (register int i = 0; i < p; i++) {
    for (register int j = 0; j < p; j++) {
      a[x + i][y + j] = sign;
    }
  }
}
inline void slove(int x, int y) {
  if (y > m) {
    y = 1;
    x = x + 1;
  }
  if (x > n) return;
  if (a[x][y]) {
    slove(x, y + 1);
    return;
  }
  int p = 1, sign = get(x, y);
  while (1) {
    if (x + p > n || y + p > m) break;
    if (a[x][y + p]) break;
    int tmp = get(x, y + p);
    if (tmp != sign) break;
    p++;
  }
  draw(x, y, p, sign);
  slove(x, y + 1);
}
int main() {
  scanf("%d%d", &n, &m);
  slove(1, 1);
  for (register int i = 1; i <= n; i++) {
    for (register int j = 1; j <= m; j++) {
      printf("%c", (a[i][j] - 1 + 'A'));
    }
    printf("\n");
  }
  return 0;
}
