#include <bits/stdc++.h>
using namespace std;
int table[20][20];
int A[20] = {0, 0, 4, 6, 8, 9, 11, 13, 15, 17};
int a[20][20];
int first_x, last_x, first_y, last_y;
int n, m;
int ans = 0, cur = 0;
void solve(int x, int y) {
  if (x > last_x) {
    if (cur > ans) {
      ans = cur;
      for (int i = 0; i <= 15; i++)
        for (int j = 0; j <= 15; j++) table[i][j] = a[i][j];
    }
    return;
  }
  if (y > last_y) {
    solve(x + 1, first_y);
    return;
  }
  if (A[last_x - x] + cur <= ans) return;
  if (!a[x][y] && !a[x][y + 1] && !a[x][y + 2] && !a[x + 1][y + 1] &&
      !a[x + 2][y + 1]) {
    a[x][y] = a[x][y + 1] = a[x][y + 2] = a[x + 1][y + 1] = a[x + 2][y + 1] =
        cur + 1;
    cur++;
    solve(x, y + 1);
    cur--;
    a[x][y] = a[x][y + 1] = a[x][y + 2] = a[x + 1][y + 1] = a[x + 2][y + 1] = 0;
  }
  if (!a[x][y] && !a[x + 1][y] && !a[x + 2][y] && !a[x + 1][y - 1] &&
      !a[x + 1][y - 2]) {
    a[x][y] = a[x + 1][y] = a[x + 2][y] = a[x + 1][y - 1] = a[x + 1][y - 2] =
        cur + 1;
    cur++;
    solve(x, y + 1);
    cur--;
    a[x][y] = a[x + 1][y] = a[x + 2][y] = a[x + 1][y - 1] = a[x + 1][y - 2] = 0;
  }
  if (!a[x][y] && !a[x + 1][y] && !a[x + 2][y] && !a[x + 2][y + 1] &&
      !a[x + 2][y - 1]) {
    a[x][y] = a[x + 1][y] = a[x + 2][y] = a[x + 2][y + 1] = a[x + 2][y - 1] =
        cur + 1;
    cur++;
    solve(x, y + 1);
    cur--;
    a[x][y] = a[x + 1][y] = a[x + 2][y] = a[x + 2][y + 1] = a[x + 2][y - 1] = 0;
  }
  if (!a[x][y] && !a[x + 1][y] && !a[x + 2][y] && !a[x + 1][y + 1] &&
      !a[x + 1][y + 2]) {
    a[x][y] = a[x + 1][y] = a[x + 2][y] = a[x + 1][y + 1] = a[x + 1][y + 2] =
        cur + 1;
    cur++;
    solve(x, y + 1);
    cur--;
    a[x][y] = a[x + 1][y] = a[x + 2][y] = a[x + 1][y + 1] = a[x + 1][y + 2] = 0;
  }
  solve(x, y + 1);
}
int main() {
  cin >> n >> m;
  first_x = 2, last_x = n + 1;
  first_y = 2, last_y = m + 1;
  for (int i = 0; i <= 15; i++)
    a[i][0] = a[i][1] = a[i][last_y + 1] = a[i][last_y + 2] = a[0][i] =
        a[1][i] = a[last_x + 1][i] = a[last_x + 2][i] = 1;
  solve(first_x, first_y);
  cout << ans << endl;
  for (int i = first_x; i <= last_x; i++, cout << endl)
    for (int j = first_y; j <= last_y; j++) {
      if (table[i][j] == 0)
        cout << '.';
      else
        cout << (char)('A' + table[i][j] - 1);
    }
  return 0;
}
