#include <bits/stdc++.h>
using namespace std;
vector<int> v1;
pair<int, int> p1;
int ans[123][123];
string s;
int dp[1001];
long long pow1(long long x, long long y) {
  if (y == 0) return 1;
  long long temp = pow1(x, y / 2) % 1000000007;
  if (y % 2 == 0)
    return (temp * temp) % 1000000007;
  else
    return (((temp * temp) % 1000000007) * x) % 1000000007;
}
int c1 = 1, c2 = 2, a, b, n;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int check(int i, int j) {
  if (i >= 0 && i < a && j >= 0 && j < b) return true;
  return false;
}
void dfs(int i, int j, int f) {
  if (f) {
    if (c1 <= n)
      ans[i][j] = c1;
    else {
      ans[i][j] = -1;
      return;
    }
    c1 += 2;
  } else {
    if (c2 <= n)
      ans[i][j] = c2;
    else {
      ans[i][j] = -1;
      return;
    }
    c2 += 2;
  }
  int k;
  for (k = 0; k < 4; k++) {
    int p = i + dx[k];
    int q = j + dy[k];
    if (check(p, q) && ans[p][q] == 0) dfs(p, q, 1 - f);
  }
}
int main() {
  int t;
  int i, j, k, m, l;
  scanf("%d%d", &n, &a);
  scanf("%d", &b);
  if (n > a * b)
    printf("-1\n");
  else {
    dfs(0, 0, 1);
    for (i = 0; i < a; i++) {
      for (j = 0; j < b; j++) {
        if (ans[i][j] == -1) ans[i][j] = 0;
        printf("%d ", ans[i][j]);
      }
      printf("\n");
      ;
    }
  }
  return 0;
}
