#include <bits/stdc++.h>
using namespace std;
const int oo = 0x3f3f3f3f;
const long long ooo = 9223372036854775807ll;
const int _cnt = 1000 * 1000 + 7;
const int _p = 1000 * 1000 * 1000 + 7;
const int N = 200005;
const double PI = acos(-1.0);
const double eps = 1e-9;
int o(int x) { return x % _p; }
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
void file_put() {
  freopen("filename.in", "r", stdin);
  freopen("filename.out", "w", stdout);
}
int n, m, tot = 0;
int **a, b[N];
bool t = 0;
int main() {
  scanf("%d%d", &n, &m);
  if (n > m) swap(n, m), t = 1;
  if (n == 1 && m == 1) return 0 * printf("YES\n1\n");
  if ((n == 1 || n == 2) && (m == 2 || m == 3)) return 0 * printf("NO\n");
  printf("YES\n");
  if (n == 1 && m == 4) return 0 * printf("3 1 4 2\n");
  if (n == 1 && m >= 5) {
    for (int i = (1); i <= (m); ++i)
      if (((i)&1)) b[++tot] = i;
    for (int i = (1); i <= (m); ++i)
      if (!((i)&1)) b[++tot] = i;
    if (t)
      for (int i = (1); i <= (m); ++i) printf("%d\n", b[i]);
    else
      for (int i = (1); i <= (m); ++i) printf("%d%c", b[i], " \n"[i == m]);
    return 0;
  }
  if (n == 3 && m == 3) return 0 * printf("4 3 8\n9 5 1\n2 7 6\n");
  a = new int *[n + 10];
  for (int i = (0); i <= (n); ++i) a[i] = new int[m + 10];
  if (t)
    for (int i = (1); i <= (n); ++i)
      for (int j = (1); j <= (m); ++j) a[i][j] = (j - 1) * n + i;
  else
    for (int i = (1); i <= (n); ++i)
      for (int j = (1); j <= (m); ++j) a[i][j] = (i - 1) * m + j;
  for (int i = (1); i <= (n); ++i)
    if (!((i)&1)) {
      b[1] = a[i][m - 1], b[2] = a[i][m];
      for (int j = (1); j <= (m - 2); ++j) b[j + 2] = a[i][j];
      for (int j = (1); j <= (m); ++j) a[i][j] = b[j];
    }
  for (int i = (1); i <= (m); ++i)
    if (!((i)&1)) {
      b[1] = a[n][i];
      for (int j = (1); j <= (n - 1); ++j) b[j + 1] = a[j][i];
      for (int j = (1); j <= (n); ++j) a[j][i] = b[j];
    }
  if (t)
    for (int j = (1); j <= (m); ++j)
      for (int i = (1); i <= (n); ++i) printf("%d%c", a[i][j], " \n"[i == n]);
  else
    for (int i = (1); i <= (n); ++i)
      for (int j = (1); j <= (m); ++j) printf("%d%c", a[i][j], " \n"[j == m]);
  return 0;
}
