#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 100;
int n, d, k, cur;
int a[maxn][maxn];
int tianchong(int st, int ed, int cur) {
  if (cur > d) {
    return maxn;
  }
  int l = ed - st + 1;
  if (l <= k) {
    for (int i = st; i <= ed; i++) {
      a[i][cur] = i - st + 1;
    }
    return 1;
  }
  int m = l / k;
  if (l % k != 0) {
    m++;
  }
  int ret = 0;
  int i;
  int cnt = 0;
  for (i = st; i + m <= ed; i += m) {
    cnt++;
    ret = max(ret, tianchong(i, i + m - 1, cur + 1));
    for (int j = i; j < i + m; j++) {
      a[j][cur] = cnt;
    }
  }
  cnt++;
  if (i + m > ed && i <= ed) {
    ret = max(ret, tianchong(i, ed, cur + 1));
    for (int j = i; j <= ed; j++) {
      a[j][cur] = cnt;
    }
  }
  return ret + 1;
}
void print() {
  for (int j = 1; j <= d; j++) {
    for (int i = 1; i <= n; i++) {
      if (i != 1) printf(" ");
      if (a[i][j])
        printf("%d", a[i][j]);
      else
        printf("1");
    }
    printf("\n");
  }
  return;
}
int main() {
  scanf("%d %d %d", &n, &k, &d);
  if (tianchong(1, n, 1) > d) {
    printf("-1\n");
  } else {
    print();
  }
  return 0;
}
