#include <bits/stdc++.h>
using namespace std;
long long n, k, d;
int dp[1004][1004];
int check() {
  long long t = 1;
  for (int i = 1; i <= d; i++) {
    t = t * k;
    if (t >= n) return 0;
  }
  printf("-1\n");
  return 1;
}
int main() {
  scanf("%I64d %I64d %I64d", &n, &k, &d);
  if (check()) return 0;
  for (int i = 1; i <= d; i++) dp[i][1] = 1;
  int t = 0;
  for (int i = 2; i <= n; i++) {
    t = 1;
    for (int j = 1; j <= d; j++) {
      t = dp[j][i - 1] + t;
      if (t == k + 1) {
        dp[j][i] = 1;
      } else {
        dp[j][i] = t;
      }
      t = t / (k + 1);
    }
  }
  for (int i = 1; i <= d; i++) {
    for (int j = 1; j <= n; j++) printf("%d ", dp[i][j]);
    printf("\n");
  }
  return 0;
}
