#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  char **d = new char *[n];
  for (int i = 0; i < n; i++) d[i] = new char[m];
  bool change = true;
  int cur_sq = 0, cur_st = 0;
  char next;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) d[i][j] = 0;
  for (int i = 0; i < n; i++) {
    change = true;
    for (int j = 0; j < m; j++) {
      if ('A' <= d[i][j] && d[i][j] <= 'Z') {
        change = true;
        continue;
      }
      char up = i > 0 ? d[i - 1][j] : -1;
      char left = j > 0 ? d[i][j - 1] : -1;
      char right = j < m - 1 ? d[i][j + 1] : -1;
      next = 'A';
      if (change) {
        while (next < 'Z' && (next == up || next == right || next == left))
          next++;
        d[i][j] = next;
        cur_sq = 1;
        cur_st = j;
        change = false;
      } else {
        while (next < 'Z' && next == up) next++;
        d[i][j] = next;
        if (next != d[i][j - 1]) {
          cur_st = j;
          cur_sq = 1;
        } else {
          cur_sq++;
          if (cur_st > 0 && d[i + cur_sq - 1][cur_st - 1] == next) {
            change = true;
            d[i][j] = 0;
            j--;
            continue;
          }
          for (int k = 1; k < cur_sq; k++) d[i + k][j] = next;
          for (int k = 0; k < cur_sq - 1; k++)
            d[i + cur_sq - 1][cur_st + k] = next;
        }
        change = false;
      }
      if (cur_sq + 1 > n - i) {
        change = true;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) cout << d[i][j];
    cout << endl;
  }
  return 0;
}
