#include <bits/stdc++.h>
using namespace std;
const int N = 10;
int n, m;
char s[N][N];
const char sb[4][3][4] = {{"###", ".#.", ".#."},
                          {"..#", "###", "..#"},
                          {".#.", ".#.", "###"},
                          {"#..", "###", "#.."}};
char a88[10][10] = {"AAA.BCCC", ".ABBBDC.", "EA.FBDC.", "EEEFDDDG",
                    "EHFFFGGG", ".HIII.JG", "HHHIJJJ.", "...I..J."};
int a8_8 = 10, a8_9 = 12, a9_8 = 12;
char a89[10][10] = {"AAABBB..C", ".AD.BECCC", ".AD.BEEEC", "FDDDGEHHH",
                    "FFFIGGGH.", "FJ.IGK.HL", ".JIIIKLLL", "JJJ.KKK.L"};
char a98[10][10] = {"AAA.BCCC", ".ABBBDC.", "EA.FBDC.", "EEEFDDDG", "EHFFFGGG",
                    ".HHHIIIG", "JHKKKIL.", "JJJK.IL.", "J..K.LLL"};
char a99[10][10] = {"AAA.BCCC.", ".ABBB.CD.", ".AE.BFCD.",
                    "EEEFFFDDD", "G.E.HFIII", "GGGJHHHI.",
                    "GK.JHL.IM", ".KJJJLMMM", "KKK.LLL.M"};
int cnt;
char ans[N][N];
bool check(const char sb[4][4], int x, int y) {
  for (int i = (0); i < (3); i++)
    for (int j = (0); j < (3); j++) {
      if (sb[i][j] == '#' && s[x + i][y + j] != '.') return false;
    }
  return 1;
}
void gao(char col, const char sb[4][4], int x, int y) {
  for (int i = (0); i < (3); i++)
    for (int j = (0); j < (3); j++)
      if (sb[i][j] == '#') {
        s[x + i][y + j] = col;
      }
}
void dfs(int x, int y, int num) {
  if (y >= m - 2) x++, y = 0;
  if (num > cnt) {
    cnt = num;
    for (int i = (0); i < (n); i++)
      for (int j = (0); j < (m); j++) ans[i][j] = s[i][j];
  }
  if (num + (n * m - x * m - y) / 6 <= cnt || x + 2 >= n) return;
  for (int i = (0); i < (4); i++) {
    if (check(sb[i], x, y)) {
      gao(num + 'A', sb[i], x, y);
      dfs(x, y + 1, num + 1);
      gao('.', sb[i], x, y);
    }
  }
  dfs(x, y + 1, num);
}
int main() {
  scanf("%d%d", &n, &m);
  memset(ans, 0, sizeof(ans));
  memset(s, 0, sizeof(s));
  for (int i = (0); i < (n); i++)
    for (int j = (0); j < (m); j++) ans[i][j] = s[i][j] = '.';
  dfs(0, 0, 0);
  printf("%d\n", cnt);
  for (int i = (0); i < (n); i++) printf("%s\n", ans[i]);
  return 0;
}
