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

void print_perm(int* x, int n);
void procedure_b(int* x, int i, int n);

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

void procedure_b(int* x, int i, int n) {
  int j, k, t;
  print_perm(x, n);
  if(i==0) return;
  for(j=0; j<i; ++j) {
    for(k=j+1; k<n; ++k) {
      t = x[j];
      x[j] = x[k];
      x[k] = t;
      procedure_b(x, j, n);
      x[k] = x[j];
      x[j] = t;
    }
  }
  return;
}

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

