func_code_string: #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;   }   