#include <bits/stdc++.h>
int main() {
  int32_t n, m;
  std::cin >> n >> m;
  if (n == 1) {
    if (m == 1)
      std::cout << 1;
    else if (m == 4)
      std::cout << "3 1 4 2";
    else if (m >= 5) {
      for (int32_t i = 1; i <= m; i += 2) std::cout << i << " ";
      for (int32_t i = 2; i <= m; i += 2) std::cout << i << " ";
    } else
      std::cout << -1;
    return 0;
  }
  if (m == 1) {
    if (n == 1)
      std::cout << 1;
    else if (n == 4)
      std::cout << "3\n1\n4\n2";
    else if (n >= 5) {
      for (int32_t i = 1; i <= n; i += 2) std::cout << i << "\n";
      for (int32_t i = 2; i <= n; i += 2) std::cout << i << "\n";
    } else
      std::cout << -1;
    return 0;
  }
  if (n == 3 && m == 2) {
    std::cout << "1 4\n3 6\n5 2";
    return 0;
  }
  int32_t** answer = new int32_t*[n];
  for (int32_t i = 0; i < n; i++) answer[i] = new int32_t[m];
  int32_t odd = 1, even = 2;
  int32_t offset = -1;
  bool* taken = new bool[n * m + 5];
  for (int32_t i = 0; i < n * m + 5; i++) {
    taken[i] = false;
  }
  for (int32_t i = 0; i < n; i++)
    for (int32_t j = 0; j < m; j++) {
      if (odd <= n * m) {
        answer[i][j] = odd;
        odd += 2;
      } else {
        if (offset == -1) {
          for (int32_t k = 2; k <= n * m; k += 2)
            if (abs(answer[i - 1][j] - k) > 1 &&
                (j == 0 || abs(answer[i][j - 1] - k) > 1)) {
              offset = k - answer[i - 1][j];
              break;
            }
        }
        if (answer[i - 1][j] % 2 == 1) {
          answer[i][j] = answer[i - 1][j] + offset;
          if (answer[i][j] > n * m) answer[i][j] -= n * m;
          taken[answer[i][j]] = true;
        } else {
          while (taken[even]) even += 2;
          answer[i][j] = even;
          taken[even] = true;
        }
      }
    }
  for (int32_t i = 0; i < n; i++)
    for (int32_t j = 0; j < m; j++) {
      if ((i != n - 1 && abs(answer[i + 1][j] - answer[i][j]) == 1) ||
          (j != m - 1 && abs(answer[i][j + 1] - answer[i][j]) == 1)) {
        std::cout << -1;
        return 0;
      }
    }
  for (int32_t i = 0; i < n; i++) {
    for (int32_t j = 0; j < m; j++) std::cout << answer[i][j] << " ";
    std::cout << "\n";
  }
  return 0;
}
