func_code_string: #include <bits/stdc++.h>   int n, m, a, b, c;   int ans[110][110];   int find(int i, int j) {     for (int k = 1; k <= 10; k++) {       if (k != ans[i][j - 1] && k != ans[i - 1][j] && k != ans[i + 1][j - 1] &&           k != ans[i - 1][j + 1])         return k;     }   }   void output() {     for (int i = 1; i <= n; i++) {       for (int j = 1; j <= m; j++) printf( %c , ans[i][j] +  a  - 1);       printf(  n );     }   }   int getans(int n, int m, int a, int b, int c) {     if (b < 0) return 0;     int test = c * 4 + (a / 2) * 4 + (b / 2) * 4;     if (test < n * m) return 0;     for (int i = 1; i < n; i += 2) {       for (int j = 1; j < m; j += 2) {         if (c > 0) {           ans[i][j] = ans[i][j + 1] = ans[i + 1][j] = ans[i + 1][j + 1] =               find(i, j);           c--;         } else if (a >= 2) {           ans[i][j] = ans[i][j + 1] = find(i, j);           ans[i + 1][j] = ans[i + 1][j + 1] = find(i + 1, j);           a -= 2;         } else {           ans[i][j] = ans[i + 1][j] = find(i, j);           ans[i][j + 1] = ans[i + 1][j + 1] = find(i, j + 1);           b -= 2;         }       }     }     return 1;   }   int main() {     while (scanf( %d %d %d %d %d , &n, &m, &a, &b, &c) != EOF) {       memset(ans, 0, sizeof(ans));       if (n % 2 == 1 && m % 2 == 1)         printf( IMPOSSIBLE n );       else if (n % 2 == 0 && m % 2 == 1) {         if (b * 2 < n)           printf( IMPOSSIBLE n );         else {           int found = 1;           b -= n / 2;           found = getans(n, m - 1, a, b, c);           for (int i = 1; i < n; i += 2) ans[i][m] = ans[i + 1][m] = find(i, m);           if (found == 0)             printf( IMPOSSIBLE n );           else             output();         }       } else if (n % 2 == 1 && m % 2 == 0) {         if (a * 2 < m)           printf( IMPOSSIBLE n );         else {           int found = 1;           a -= m / 2;           found = getans(n - 1, m, a, b, c);           for (int i = 1; i < m; i += 2) ans[n][i] = ans[n][i + 1] = find(n, i);           if (found == 0)             printf( IMPOSSIBLE n );           else             output();         }       } else {         int found = getans(n, m, a, b, c);         if (found == 0)           printf( IMPOSSIBLE n );         else           output();       }     }     return 0;   }   