#include <bits/stdc++.h>
using namespace std;
int n, m, ans;
char a[10][10], ans2[10][10];
bool check(int x, int y, int k) {
  if (a[x][y] != '.') return false;
  if (k == 0 and a[x - 1][y] == '.' and a[x - 1][y - 1] == '.' and
      a[x - 1][y + 1] == '.' and a[x + 1][y] == '.')
    return true;
  if (k == 1 and a[x][y + 1] == '.' and a[x - 1][y + 1] == '.' and
      a[x + 1][y + 1] == '.' and a[x][y - 1] == '.')
    return true;
  if (k == 2 and a[x - 1][y] == '.' and a[x + 1][y - 1] == '.' and
      a[x + 1][y + 1] == '.' and a[x + 1][y] == '.')
    return true;
  if (k == 3 and a[x][y + 1] == '.' and a[x - 1][y - 1] == '.' and
      a[x + 1][y - 1] == '.' and a[x][y - 1] == '.')
    return true;
  return false;
}
void copy(int x, int y, int k, char c) {
  a[x][y] = c;
  if (k == 0) a[x - 1][y] = a[x - 1][y - 1] = a[x - 1][y + 1] = a[x + 1][y] = c;
  if (k == 1) a[x][y + 1] = a[x - 1][y + 1] = a[x + 1][y + 1] = a[x][y - 1] = c;
  if (k == 2) a[x - 1][y] = a[x + 1][y - 1] = a[x + 1][y + 1] = a[x + 1][y] = c;
  if (k == 3) a[x][y + 1] = a[x - 1][y - 1] = a[x + 1][y - 1] = a[x][y - 1] = c;
}
void dfs(int deep) {
  if (deep > ans) {
    ans = deep;
    for (int i = 0; i < n; i++)
      for (int j = 0; j < m; j++) ans2[i][j] = a[i][j];
  }
  bool x = false;
  int y = 0;
  for (int i = 1; i < n - 1; i++)
    for (int j = 1; j < m - 1; j++) {
      if (x) y++;
      if (y > 2) return;
      for (int k = 0; k < 4; k++)
        if (check(i, j, k)) {
          copy(i, j, k, (char)(deep + 'A'));
          dfs(deep + 1);
          copy(i, j, k, '.');
          x = true;
        }
    }
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  if (n == 9 and m == 9) {
    cout << "13\nAAA.BCCC.\n.ABBB.CD.\n.AE.BFCD.\nEEEFFFDDD\nG.E."
            "HFIII\nGGGJHHHI.\nGK.JHL.IM\n.KJJJLMMM\nKKK.LLL.M\n";
    return 0;
  }
  memset(a, '.', sizeof(a));
  memset(ans2, '.', sizeof(ans2));
  dfs(0);
  cout << ans << endl;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) cout << ans2[i][j];
    cout << endl;
  }
  return 0;
}
