#include<iostream>
using namespace std;
int a[10], dd[10]={1}, n;

void xuat(){
	for(int i=1; i<=n; i++)
		cout<<a[i];
	cout<<endl;
}

void backtrack(int i){
	if(i>n) xuat();
	for(int j=1; j<=n; j++){
		if(dd[j]==1){
			dd[j]=0;
			a[i]=j;
			backtrack(i+1);
			dd[j]=1;
		}
	}
}

int main(){
	for (int j = 0; j < 10; j++) cout << dd[j] << " "; cout << endl;
	cin>>n;
	backtrack(1);
	return 0;
}
