#include <bits/stdc++.h>
using namespace std;
int n, m, a[100 + 2][100 + 2];
inline int col(int x, int y) {
  int u = a[x - 1][y], d = a[x + 1][y];
  int l = a[x][y - 1], r = a[x][y + 1], ans;
  for (ans = 1; u == ans || d == ans || l == ans || r == ans; ++ans)
    ;
  return ans;
}
inline bool exist(int x, int y, int c) {
  if (a[x][y]) return true;
  if (a[x - 1][y] == c || a[x + 1][y] == c) return true;
  if (a[x][y - 1] == c || a[x][y + 1] == c) return true;
  return false;
}
int main(int argc, char *argv[]) {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) {
      if (a[i][j]) continue;
      int c = col(i, j), k;
      for (k = 1; i + k - 1 <= n && j + k - 1 <= m; ++k) {
        bool ok = true;
        for (int x = 1; x <= k; ++x)
          if (exist(i + k - 1, j + x - 1, c))
            ok = false;
          else if (exist(i + x - 1, j + k - 1, c))
            ok = false;
        if (col(i, j + k - 1) < c) ok = false;
        if (!ok) break;
      }
      for (int x = 1; x < k; ++x)
        for (int y = 1; y < k; ++y) a[i + x - 1][j + y - 1] = c;
    }
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= m; ++j) cout << (char)(a[i][j] + 'A' - 1);
    cout << endl;
  }
  fclose(stdin);
  fclose(stdout);
  return 0;
}
