#include <bits/stdc++.h>
using namespace std;
int a[150][150];
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
int n, m;
int getminchar(int x, int y) {
  bool f[] = {false, false, false, false};
  for (int i = 0; i < 4; i++) {
    int newx = x + dx[i];
    int newy = y + dy[i];
    if (newx >= 0 && newy >= 0 && newx < n && newy < m && a[newx][newy] != -1) {
      f[a[newx][newy]] = true;
    }
  }
  for (int i = 0; i < 4; i++) {
    if (!f[i]) {
      return i;
    }
  }
}
void color(int x, int y, int s, int c) {
  for (int i = x; i < x + s + 1; i++) {
    for (int j = y; j < y + s + 1; j++) {
      a[i][j] = c;
    }
  }
}
int main() {
  for (int i = 0; i < 150; i++) {
    for (int j = 0; j < 150; j++) {
      a[i][j] = -1;
    }
  }
  scanf("%d %d", &n, &m);
  int l = 0;
  int s = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (a[i][j] != -1) {
        continue;
      }
      int sq_size = 0;
      int here = getminchar(i, j);
      while (i + sq_size + 1 < n && j + sq_size + 1 < m &&
             a[i][j + sq_size + 1] == -1 &&
             getminchar(i, j + sq_size + 1) == here) {
        sq_size++;
      }
      color(i, j, sq_size, here);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      printf("%c", (char)(a[i][j] + 'A'));
    }
    printf("\n");
  }
  return 0;
}
