#include <stdio.h>
#include <stdlib.h>

void print_set(int* x, int n);
void procedure_b(int* x, int n, int a, int b);

int main() {
  int n, k, i;
  int* x;
  scanf("%d %d", &n, &k);
  x = malloc(sizeof(int)*n);
  if(x == NULL) exit(EXIT_FAILURE);
  for(i=0; i<k; ++i) x[i] = 1;
  for(i=k; i<n; ++i) x[i] = 0;
  procedure_b(x,n,k-1,k-1);
  free(x);
  return 0;
}

void procedure_b(int* x, int n, int a, int b) {
  int i,j;
  print_set(x, n);
  if(a<0 || b==n-1) return;
  for(j=b+1; j < n; ++j) {
    for(i=0; i<=a; ++i) {
      x[j]=1; x[i]=0;
      procedure_b(x, n, i-1, j);
      x[j]=0; x[i]=1;
    }
  }
  return;
}


void print_set(int* x, int n) {
  int i;
  for(i=0; i<n; ++i) {
    if(x[i]==1) {
      printf("%d ", i+1);
    }
  }
  printf("\n");
  return;
}

