#include <bits/stdc++.h>
using namespace std;
int N;
int a[101][101], np = 1, p = 2;
void prover1(int i, int j) {
  if ((a[i - 1][j] % 2 == 1) & (p <= N)) {
    a[i][j] = p;
    p += 2;
  } else if ((a[i - 1][j] % 2 == 0) & (np <= N)) {
    a[i][j] = np;
    np += 2;
  }
}
void prover2(int i, int j) {
  if ((a[i][j - 1] % 2 == 1) & (p <= N)) {
    a[i][j] = p;
    p += 2;
  } else if ((a[i][j - 1] % 2 == 0) & (np <= N)) {
    a[i][j] = np;
    np += 2;
  }
}
int main() {
  int n, m;
  cin >> N >> n >> m;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      a[i][j] = 0;
    }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      if ((a[i - 1][j] % 2 == a[i][j - 1] % 2) & (a[i - 1][j] != 0) &
          (a[i][j - 1] != 0)) {
        prover1(i, j);
      } else {
        if ((a[i - 1][j] == 0) & (a[i][j - 1] != 0))
          prover2(i, j);
        else if ((a[i][j - 1] == 0) & (a[i - 1][j] != 0))
          prover1(i, j);
        else {
          if (a[i - 1][j] % 2 != a[i][j - 1] % 2) {
            a[i][j] = 0;
          } else if (np <= N) {
            a[i][j] = np;
            np += 2;
          } else if (p <= N) {
            a[i][j] = p;
            p += 2;
          } else {
            a[i][j] = 0;
          }
        }
      }
    }
  np -= 2;
  p -= 2;
  p = p + N % 2;
  np = np + (N % 2 + 1) % 2;
  if ((np == N) & (p == N)) {
    for (int i = 1; i <= n - 1; i++) {
      for (int j = 1; j <= m; j++) cout << a[i][j] << " ";
      cout << endl;
    }
    for (int j = 1; j <= m; j++) cout << a[n][j] << " ";
  } else
    cout << "-1";
  return 0;
}
