func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m;   char a[109][109], b[109][109];   void add(int x, int y) {     if (a[x][y] ==  * ) return;     if (b[x][y] ==   0 )       b[x][y] =  1 ;     else       ++b[x][y];   }   void fill(int x, int y) {     if (x > 0 && y > 0) add(x - 1, y - 1);     if (x > 0) {       add(x - 1, y);       add(x - 1, y + 1);     }     if (y > 0) {       add(x, y - 1);       add(x + 1, y - 1);     }     add(x, y + 1);     add(x + 1, y);     add(x + 1, y + 1);   }   bool check() {     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         if ((a[i][j] >=  1  && a[i][j] <=  8 ) ||             (b[i][j] >=  1  && b[i][j] <=  8 )) {           if (a[i][j] != b[i][j]) {             return false;           }         }       }     }     return true;   }   int main() {     cin >> n >> m;     for (int i = 0; i < n; i++) {       scanf( %s , a[i]);     }     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         if (a[i][j] ==  * ) {           fill(i, j);         }       }     }     if (check())       cout <<  YES  << endl;     else       cout <<  NO  << endl;     return 0;   }   