#include <bits/stdc++.h>
using namespace std;
void read_file(bool outToFile = true) {}
int n, m;
vector<vector<int> > A;
void shiftR(int i) {
  int sv = A[i][m - 1];
  for (int j = m - 1; j >= 1; j--) {
    A[i][j] = A[i][j - 1];
  }
  A[i][0] = sv;
}
void shiftC(int j) {
  int sv = A[n - 1][j];
  for (int i = n - 1; i >= 1; i--) {
    A[i][j] = A[i - 1][j];
  }
  A[0][j] = sv;
}
void permC() {
  vector<int> p;
  for (int i = 1; i < m; i += 2) p.push_back(i);
  for (int i = 0; i < m; i += 2) p.push_back(i);
  vector<vector<int> > B = A;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      A[i][j] = B[i][p[j]];
    }
  }
}
void permR() {
  vector<int> p;
  for (int i = 1; i < n; i += 2) p.push_back(i);
  for (int i = 0; i < n; i += 2) p.push_back(i);
  vector<vector<int> > B = A;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      A[i][j] = B[p[i]][j];
    }
  }
}
void reverse(int j) {
  for (int i = 0; i < n - 1 - i; i++) {
    swap(A[i][j], A[n - 1 - i][j]);
  }
}
void solve() {
  if (m >= 4) {
    for (int i = 0; i < n; i += 2) {
      if (m % 2 == 0)
        reverse(((A[i]).begin()), ((A[i]).end()));
      else
        shiftR(i);
    }
    permC();
  } else if (n >= 4) {
    for (int j = 0; j < m; j += 2) {
      if (n % 2 == 0)
        reverse(j);
      else
        shiftC(j);
    }
    permR();
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      printf("%d%c", A[i][j] + 1, " \n"[j == m - 1]);
    }
  }
}
int main() {
  read_file();
  while (scanf("%d%d", &n, &m) != -1) {
    A = vector<vector<int> >(n, vector<int>(m));
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        A[i][j] = i * m + j;
      }
    }
    if (max(n, m) >= 4) {
      printf("YES\n");
      solve();
    } else if (min(n, m) == 1) {
      if (n == 1 && m == 1) {
        printf("YES\n");
        printf("1\n");
      } else {
        printf("NO\n");
      }
    } else if (min(n, m) == 2) {
      printf("NO\n");
    } else {
      printf("YES\n");
      printf("6 1 8\n");
      printf("7 5 3\n");
      printf("2 9 4\n");
    }
  }
}
