#include <bits/stdc++.h>
using namespace std;
int n, m;
char table[100][100];
bool mark[100][100];
void paint(int x, int y) {
  int c = 65, mahdoode = 1;
  for (int i = 0; i < 3; i++) {
    if (x > 0 && mark[x - 1][y] && table[x - 1][y] == char(65 + i) &&
        c == 65 + i)
      c++;
    if (x < n - 1 && mark[x + 1][y] && table[x + 1][y] == char(65 + i) &&
        c == 65 + i)
      c++;
    if (y > 0 && mark[x][y - 1] && table[x][y - 1] == char(65 + i) &&
        c == 65 + i)
      c++;
    if (y < m - 1 && mark[x][y + 1] && table[x][y + 1] == char(65 + i) &&
        c == 65 + i)
      c++;
  }
  if (c == 65) {
    while (!mark[x + mahdoode][y] && !mark[x][y + mahdoode] &&
           x + mahdoode < n && y + mahdoode < m &&
           (x == 0 || (!mark[x - 1][y + mahdoode] ||
                       table[x - 1][y + mahdoode] != char(c))) &&
           (y == 0 || (!mark[x + mahdoode][y - 1] ||
                       table[x + mahdoode][y - 1] != char(c))))
      mahdoode++;
    for (int i = x; i < x + mahdoode; i++) {
      for (int j = y; j < y + mahdoode; j++) {
        mark[i][j] = 1;
        table[i][j] = char(c);
      }
    }
  } else if (c == 66) {
    while (!mark[x + mahdoode][y] && !mark[x][y + mahdoode] &&
           x + mahdoode < n && y + mahdoode < m && x != 0 &&
           mark[x - 1][y + mahdoode] &&
           table[x - 1][y + mahdoode] == char(c - 1) &&
           (x == 0 || (!mark[x - 1][y + mahdoode] ||
                       table[x - 1][y + mahdoode] != char(c))) &&
           (y == 0 || (!mark[x + mahdoode][y - 1] ||
                       table[x + mahdoode][y - 1] != char(c))))
      mahdoode++;
    for (int i = x; i < x + mahdoode; i++) {
      for (int j = y; j < y + mahdoode; j++) {
        mark[i][j] = 1;
        table[i][j] = char(c);
      }
    }
  } else if (c == 67) {
    while (!mark[x + mahdoode][y] && !mark[x][y + mahdoode] &&
           x + mahdoode < n && y + mahdoode < m && x != 0 &&
           mark[x - 1][y + mahdoode] &&
           table[x - 1][y + mahdoode] == char(c - 1) &&
           table[x - 1][y + mahdoode] == char(c - 2) &&
           (x == 0 || (!mark[x - 1][y + mahdoode] ||
                       table[x - 1][y + mahdoode] != char(c))) &&
           (y == 0 || (!mark[x + mahdoode][y - 1] ||
                       table[x + mahdoode][y - 1] != char(c))))
      mahdoode++;
    for (int i = x; i < x + mahdoode; i++) {
      for (int j = y; j < y + mahdoode; j++) {
        mark[i][j] = 1;
        table[i][j] = char(c);
      }
    }
  } else {
    while (!mark[x + mahdoode][y] && !mark[x][y + mahdoode] &&
           x + mahdoode < n && y + mahdoode < m && x != 0 &&
           mark[x - 1][y + mahdoode] &&
           table[x - 1][y + mahdoode] == char(c - 1) &&
           table[x - 1][y + mahdoode] == char(c - 2) &&
           table[x - 1][y + mahdoode] == char(c - 3) &&
           (x == 0 || (!mark[x - 1][y + mahdoode] ||
                       table[x - 1][y + mahdoode] != char(c))) &&
           (y == 0 || (!mark[x + mahdoode][y - 1] ||
                       table[x + mahdoode][y - 1] != char(c))))
      mahdoode++;
    for (int i = x; i < x + mahdoode; i++) {
      for (int j = y; j < y + mahdoode; j++) {
        mark[i][j] = 1;
        table[i][j] = char(c);
      }
    }
  }
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (!mark[i][j]) paint(i, j);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) cout << table[i][j];
    cout << endl;
  }
  return 0;
}
