#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10000;
int n, k, a[MAXN], target[MAXN];
int main() {
  scanf("%d%d", &n, &k);
  for (int i = (0); i < (n); i++) {
    target[i] = n - 1 - i;
    a[i] = 1;
  }
  a[n - 1] = 0;
  int bit = 0;
  for (int _ = (0); _ < (k); _++) {
    for (; bit < 16; bit++) {
      bool fit = true;
      for (int i = (0); i < (n); i++) {
        if ((a[i] & (1 << bit)) != (target[i] & (1 << bit))) {
          fit = false;
          break;
        }
      }
      if (!fit) break;
    }
    if (bit < 16) {
      for (int i = (0); i < (n); i++) {
        if ((a[i] & (1 << bit)) != (target[i] & (1 << bit))) {
          printf("%d ", n - (1 << bit));
          a[i] += 1 << bit;
        } else {
          printf("%d ", n);
        }
      }
      putchar('\n');
      bit++;
    } else {
      for (int i = (0); i < (n); i++) {
        printf("%d ", n);
      }
      putchar('\n');
    }
  }
  return 0;
}
