#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
const double PI = 3.141592653589793;
string s =
    ".........................................................................."
    "......................................................................AAA."
    "A..A.AAA..A...A..AAAB..A.B..ABBBAAABBB.A..B..A..B.AAABCCC.A.B.C..ABBBC."
    "AAABBBC..A..B.C..A..BCCCAAABCCCD..A.B.C.D..ABBBCDDD............AAA.A..A..."
    ".AAA..AB..AB..BBBAAAB..A.B..ABBB.....AAABBB.AC.B..AC.B..CCC..AAABBB..AC."
    "BD..AC.BD..CCCDDDAAABBBC..AD.B.C..AD.BCCC.DDD....AAABBBCCC.AD.BE.C..AD.BE."
    "C..DDDEEE.................AAA.A.BA.BBBB..AAA..AB..AB..BBB....AAA.B.ABBBCA."
    "DBCCCD.C.DDDAAABBB.A..B.CA.DB.CCCD..C.DDD.AAABBB..A..BC.DA.EBC.DDDECCCD."
    "EEE..AAABBB.C.A..BCCCDA.EBF.CDDDE.FFFD.EEEF..AAABBBC...A..BDCCCEA.FBDCG."
    "EEEFDDDG.E.FFF.GGG..................AAA.A.BA.BBBB.....AAA..AB..AB.CBBBCCC."
    "C...AAAB..A.B.CABBBCCCD.CDDD....D.AAABBB.AC.B..AC.B.DCCCE.DDD.E.D.."
    "EEEAAABCCC.A.B.C.DABBBCEDDDFEEEDFFF..E...F...AAABBBC..AD.B.C..AD."
    "BCCCEDDDFGGGEEE.F.G.E..FFFG.AAABBBCCC.AD.B.EC..AD.B.EC.FDDDGEEEHFFF.G."
    "HHHF..GGG..H.....................AAA.A.BA.BBBBC..C.CCCAAA..AB..AB."
    "CBBBCCCDCDDD...DAAAB..A.B.CABBBCCCD.CE.D..EDDDEEE..AAABBB.A..B.CA.DB."
    "CCCDDDCE.DF..EFFF.EEE.F.AAABCCC.A.B.C.DABBBCEDDDFEEEDG.F.HE.GFFFH.GGG."
    "HHHAAA.BBB..ACCCBD..AEC.BD.EEECFDDDG.EHFFFIGGGHFIIIG.HHH..IAAABCCC.D.A.B."
    "CDDDEABBBCF.DEEEGFFFH.EI.G.JFH..IGGGJHHHIII.JJJ.........................."
    "AAA.A.BA.BBBBC..C.CCC...AAA..AB..AB.CBBBCCCDCDDD...D....AAAB..A.B."
    "CABBBCCCD.CDDD.EEEDF.EFFF.E..FAAABBB.AC.B..AC.B.DCCC.EDDDEEEDFFFGE..F.G..."
    "FGGGAAAB..C.A.BCCCDABBBECDDDEEE.DFFF.EG.HFIGGG.HFIIIGHHHI...AAABBBC..A..B."
    "C.DA..BCCCDDDEEE.FDGGGEFFF.HGIE.JF.HGIIIJ.HHHI.JJJAAABBB..C.AD.BECCC.AD."
    "BEEECFDDDGEHHHFFFIGGGH.FJ.IGK.HL.JIIIKLLLJJJ.KKK.L........................"
    "...AAA.A.BA.BBBB.CCCCD.CDDDD..AAA..AB..AB.CBBBCCCDCDDDEEED.E...E..AAAB..A."
    "B.CABBBCCC.DCEDDD.EEEDFEGGGFFFG.F..G.AAABBB.AC.B..AC.B.DCCC.EDDDEEEDFFFGE."
    "HF.G..HFGGGHHH...AAABBB..A..BC.DA.EBC.DDDECCCDFEEE.G.FFFGGGHFIIIJGHHHI.J."
    "H..IJJJAAABBB.C.AD.BCCC.AD.B.ECFDDDEEE.FFFGGGEHFIIIGHHH.JIKG.LH.JIKKKL."
    "JJJK.LLLAAABBBCCC.AD.BE.C..AD.BE.C.FDDDEEE.GFFFHHHGGGFIIIHJJJG.KILH.JM.."
    "KILLLJM.KKKL..MMM";
int n, m, g, i, j, maxx, k;
int main() {
  scanf("%d %d", &n, &m);
  g = 0;
  i = 1;
  j = 1;
  while (i != n || j != m) {
    g += i * j;
    j++;
    if (j > 9) {
      j = 1;
      i++;
    }
  }
  maxx = 0;
  for (k = g; k < g + n * m; k++)
    if (s[k] != '.') maxx = max(maxx, int(s[k]) - 64);
  printf("%d\n", maxx);
  for (k = g; k < g + n * m; k += m) printf("%s\n", s.substr(k, m).c_str());
  return 0;
}
