#include <bits/stdc++.h>
using namespace std;
const int N = 104;
int a[N][N], n, m;
int f[N * N], p, pos;
int main() {
  memset(a, -1, sizeof(a));
  scanf("%d %d", &n, &m);
  srand(time(0));
  int c = 400;
  while (c--) {
    p = n * m;
    for (int i = 1; i <= p; i++) f[i] = i;
    for (int i = 1; i <= n; i++)
      for (int j = 1; j <= m; j++) {
        pos = rand() % p + 1;
        a[i][j] = f[pos];
        swap(f[p--], f[pos]);
      }
    bool f = 1;
    for (int i = 1; i <= n && f; i++)
      for (int j = 1; j <= m && f; j++)
        if (((a[i][j] - a[i + 1][j]) > 0 ? (a[i][j] - a[i + 1][j])
                                         : -(a[i][j] - a[i + 1][j])) == 1 ||
            ((a[i][j] - a[i][j + 1]) > 0 ? (a[i][j] - a[i][j + 1])
                                         : -(a[i][j] - a[i][j + 1])) == 1)
          f = 0;
    if (f) {
      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;
    }
  }
  puts("-1");
}
