func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m;   vector<int> a[100010];   int x;   int now;   void print() {     cout <<  YES  << endl;     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) cout << a[i][j] <<    ;       cout << endl;     }   }   int main() {     cin >> n >> m;     now = 1;     for (int i = 0; i < n; i++)       for (int j = 0; j < m; j++) {         a[i].push_back(now);         now += 1;       }     if (n == 1 && m == 1) {       cout <<  YES  << endl;       cout << 1;       return 0;     }     if (n * m == 2) {       cout <<  NO ;       return 0;     }     if (n * m == 3) {       cout <<  NO ;       return 0;     }     if (n == 2 && m == 2) {       cout <<  NO ;       return 0;     }     if (n * m == 6 && min(n, m) == 2) {       cout <<  NO ;       return 0;     }     if (n == 3 && m == 3) {       cout <<  YES  << endl;       cout <<  6 1 8  << endl;       cout <<  7 5 3  << endl;       cout <<  2 9 4  << endl;       return 0;     }     if (n == 1 && m >= 4) {       now = 0;       for (int i = 2; i <= m; i += 2) {         a[0][now] = i;         now += 1;       }       for (int i = 1; i <= m; i += 2) {         a[0][now] = i;         now += 1;       }       print();       return 0;     }     if (m == 1 && n >= 4) {       now = 0;       for (int i = 2; i <= n; i += 2) {         a[now][0] = i;         now += 1;       }       for (int i = 1; i <= n; i += 2) {         a[now][0] = i;         now += 1;       }       print();       return 0;     }     if (m >= 4) {       for (int i = 0; i < n; i++)         if (i % 2 == 0) {           int tmp0 = a[i][m - 2];           int tmp1 = a[i][m - 1];           for (int j = m - 1; j >= 2; j--) a[i][j] = a[i][j - 2];           a[i][1] = tmp1;           a[i][0] = tmp0;         }       for (int i = 0; i < m; i++)         if (i % 2 == 0) {           int tmp0 = a[0][i];           for (int j = 0; j < n - 1; j++) a[j][i] = a[j + 1][i];           a[n - 1][i] = tmp0;         }       print();       return 0;     }     if (n >= 4) {       for (int i = 0; i < m; i++)         if (i % 2 == 0) {           int tmp0 = a[n - 2][i];           int tmp1 = a[n - 1][i];           for (int j = n - 1; j >= 2; j--) a[j][i] = a[j - 2][i];           a[1][i] = tmp1;           a[0][i] = tmp0;         }       for (int i = 0; i < n; i++)         if (i % 2 == 0) {           int tmp0 = a[i][0];           for (int j = 0; j < m - 1; j++) a[i][j] = a[i][j + 1];           a[i][m - 1] = tmp0;         }       print();       return 0;     }     return 0;   }   