#include <bits/stdc++.h>
using namespace std;
const int inf = (int)1e9;
const double INF = 1e12, EPS = 1e-9;
const int dy[] = {-1, 0, 1, 0}, dx[] = {0, -1, 0, 1};
int h, w;
string ans[100];
inline bool ok(int y, int x, char c) {
  for (int d = 0; d < (int)4; d++) {
    int ny = y + dy[d], nx = x + dx[d];
    if (ny < 0 || nx < 0 || ny >= h || nx >= w) continue;
    if (ans[ny][nx] == c) return 0;
  }
  return 1;
}
inline bool ok2(int y, int x, char c) {
  if (ans[y][x] != '.') return 0;
  for (int d = 1; d < 4; d++) {
    int ny = y + dy[d], nx = x + dx[d];
    if (ny < 0 || nx < 0 || ny >= h || nx >= w) continue;
    if (ans[ny][nx] == c) return 0;
  }
  return 1;
}
inline bool ok3(int y, int x, char c) {
  if (ans[y][x] != '.') return 0;
  for (int d = 0; d < (int)4; d++)
    if (d != 1) {
      int ny = y + dy[d], nx = x + dx[d];
      if (ny < 0 || nx < 0 || ny >= h || nx >= w) continue;
      if (ans[ny][nx] == c) return 0;
    }
  return 1;
}
inline bool check(int y, int x) {
  int Y = y, X = x;
  while (y && ans[y - 1][x] == ans[y][x]) y--;
  while (x && ans[y][x - 1] == ans[y][x]) x--;
  while (Y + 1 < h && ans[Y + 1][X] == ans[Y][X]) Y++;
  while (X + 1 < w && ans[Y][X + 1] == ans[Y][X]) X++;
  if (Y + 1 >= h || X + 1 >= w) return 0;
  int l = Y - y + 2;
  for (int i = 0; i < (int)l; i++)
    if (!ok2(Y + 1, x + i, ans[y][x]) || !ok3(y + i, X + 1, ans[y][x]))
      return 0;
  return 1;
}
void extend(int y, int x) {
  int Y = y, X = x;
  while (y && ans[y - 1][x] == ans[y][x]) y--;
  while (x && ans[y][x - 1] == ans[y][x]) x--;
  while (Y + 1 < h && ans[Y + 1][X] == ans[Y][X]) Y++;
  while (X + 1 < w && ans[Y][X + 1] == ans[Y][X]) X++;
  int l = Y - y + 2;
  for (int i = 0; i < (int)l; i++)
    ans[Y + 1][x + i] = ans[y + i][X + 1] = ans[y][x];
}
int main() {
  cin >> h >> w;
  for (int i = 0; i < (int)h; i++) ans[i] = string(w, '.');
  for (int i = 0; i < (int)h; i++)
    for (int j = 0; j < (int)w; j++)
      if (ans[i][j] == '.') {
        char p = j ? ans[i][j - 1] : 'Z', c = 'A';
        for (; c < p; c++) {
          if (ok(i, j, c)) break;
        }
        if (c != p)
          ans[i][j] = c;
        else if (check(i, j - 1))
          extend(i, j - 1);
        else
          for (c = p + 1;; c++) {
            if (ok(i, j, c)) {
              ans[i][j] = c;
              break;
            }
          }
      }
  for (int i = 0; i < (int)h; i++) cout << ans[i] << endl;
  return 0;
}
