#include <bits/stdc++.h>
using namespace std;
using namespace std;
const int N = 110;
int n, m;
int a[N][N];
void solve() {
  int t = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 1; j < m; j += 2) a[i][j] = ++t;
    for (int j = 0; j < m; j += 2) a[i][j] = ++t;
  }
}
void tran() {
  int nn = max(n, m);
  for (int i = 0; i < nn; ++i) {
    for (int j = i + 1; j < nn; ++j) {
      swap(a[i][j], a[j][i]);
    }
  }
}
void print() {
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) {
      printf("%d%c", a[i][j], " \n"[j == m - 1]);
    }
  }
}
int main() {
  scanf("%d%d", &n, &m);
  if (n > 3 || m > 3) {
    if (m > 3) {
      solve();
    } else {
      swap(n, m);
      solve();
      tran();
      swap(n, m);
    }
    print();
  } else {
    if (n == 1 || m == 1) {
      if (n == 1 && m == 1) {
        puts("1");
      } else {
        puts("-1");
      }
    } else if (n == 2 && m == 2) {
      puts("-1");
    } else if (n == 2 && m == 3 || n == 3 && m == 2) {
      if (n == 2) {
        puts("1 5 3\n4 2 6");
      } else {
        puts("1 4\n5 2\n3 6");
      }
    } else {
      puts("1 4 7\n8 2 5\n3 6 9");
    }
  }
  return 0;
}
