/* ヽ༼ ຈل͜ຈ༼ ▀̿̿Ĺ̯̿̿▀̿ ̿༽Ɵ͆ل͜Ɵ͆ ༽ノ */
#include <stdio.h>
int fv[9], x[8];
FILE *fin, *fout;
void back(int k, int n) {
int i;
if (k == n) {
for (i = 0; i < n; i++)
fprintf(fout, "%d ", x[i]);
fputc('\n', fout);
return;
}
i = 1;
while (i <= n) {
while (i <= n && fv[i] == 1) {
i++;
}
if (i > n) {
break;
}
fv[i] = 1;
x[k] = i;
back(k + 1, n);
fv[i] = 0;
i++;
}
}
int main() {
fin = fopen("permutari.in", "r");
fout = fopen("permutari.out", "w");
int n;
fscanf(fin, "%d", &n);
back(0, n);
fclose(fin);
fclose(fout);
return 0;
}