#include <bits/stdc++.h>
using namespace std;
int a, b, c;
char m[200][200];
int color[256];
void fill(int x, int y, int s) {
  for (int i = 0; i < 256; ++i) color[i] = 0;
  for (int i = x; i < x + s; ++i) color[m[i][y - 1]]++, color[m[i][y + s]]++;
  for (int i = y; i < y + s; ++i) color[m[x - 1][i]]++, color[m[x + s][i]]++;
  int n = 0;
  for (int i = 'A'; i <= 'Z'; ++i)
    if (n == 0 && color[i] == 0) n = i;
  for (int i = x; i < x + s; ++i)
    for (int q = y; q < y + s; ++q) m[i][q] = n;
}
int tryf(int x, int y, int s) {
  for (int i = 0; i < 256; ++i) color[i] = 0;
  for (int i = x; i < x + s; ++i) {
    color[m[i][y - 1]]++, color[m[i][y + s]]++;
    if (m[i][y] != ' ') return -1;
  }
  for (int i = y; i < y + s; ++i) {
    color[m[x - 1][i]]++, color[m[x + s][i]]++;
    if (m[x][i] != ' ') return -1;
  }
  int n = 0;
  for (int i = 'A'; i <= 'Z'; ++i)
    if (n == 0 && color[i] == 0) n = i;
  return n;
}
int main() {
  cin >> a >> b;
  for (int i = 0; i < 200; ++i)
    for (int q = 0; q < 200; ++q) m[i][q] = ' ';
  for (int i = 1; i <= a; ++i)
    for (int q = 1; q <= b; ++q)
      if (m[i][q] == ' ') {
        int tmp = tryf(i, q, 1);
        int l = 2;
        while (i + l <= a + 1 && q + l <= b + 1 && tryf(i, q, l) == tmp &&
               tryf(i, q + l - 1, 1) >= tmp)
          ++l;
        fill(i, q, l - 1);
      }
  for (int i = 1; i <= a; ++i) {
    for (int q = 1; q <= b; ++q) cout << m[i][q];
    cout << "\n";
  }
  return 0;
}
