QwQ:
#include <bits/stdc++.h>
using namespace std;
long long a[100];
long long b[100];
long long n,r;
bool f[100];
void print () {
cout<<" "<<a[b[1]]<<" ";
for (int i=2;i<=r;i++)
cout<<a[b[i]]<<(i<r ? " " : "");
}
void dfs (int deep) {
if (deep>r) {
print ();
cout<<"\n";
return ;
}
for (int i=1;i<=n;i++) {
if (f[i]==false && ! (deep==1 && a[i]==0)) {
f[i]=true;
b[deep]=i;
dfs (deep+1);
f[i]=false;
}
}
}
int main() {
cin>>n;
r=n;
for (int i=1;i<=n;i++) a[i]=i;
dfs (1);
return 0;
}