#include <stdio.h>
#define SIZE 100
int n,
sol[SIZE],
used[SIZE];
void perm(int level ) {
if(level == n + 1) {
for(int i = 1; i <= n; i++) {
printf("%d ", sol[i]);
}
printf("\n");
} else {
for(int i = 1; i <= n; ++i) {
if(!used[i]) {
sol[level] = i;
used[i] = 1;
perm(level+1);
used[i] = 0;
}
}
}
}
int main(int argc, char const *argv[]) {
printf("n=");
scanf("%d",&n);
perm(1);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSAxMDAKCmludCBuLAogICAgc29sW1NJWkVdLAogICAgdXNlZFtTSVpFXTsKCnZvaWQgcGVybShpbnQgbGV2ZWwgKSB7CgogICAgICAgaWYobGV2ZWwgPT0gbiArIDEpIHsKCiAgICAgICAgICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKCiAgICAgICAgICAgICAgIHByaW50ZigiJWQgIiwgc29sW2ldKTsKICAgICAgICAgICB9CgogICAgICAgICAgIHByaW50ZigiXG4iKTsKCiAgICAgICB9IGVsc2UgewoKICAgICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewoKICAgICAgICAgICAgICAgICBpZighdXNlZFtpXSkgewoKICAgICAgICAgICAgICAgICAgICAgc29sW2xldmVsXSA9IGk7CgogICAgICAgICAgICAgICAgICAgICB1c2VkW2ldID0gMTsKCiAgICAgICAgICAgICAgICAgICAgIHBlcm0obGV2ZWwrMSk7CgogICAgICAgICAgICAgICAgICAgICB1c2VkW2ldID0gMDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgfQp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciBjb25zdCAqYXJndltdKSB7CgogIHByaW50Zigibj0iKTsKICBzY2FuZigiJWQiLCZuKTsKICBwZXJtKDEpOwoKICByZXR1cm4gMDsKfQo=