#include<bits/stdc++.h>
using namespace std;
int n,v[100],f[100],val[100];
//
void dfs(int step){
	if(step>n){
		for(int i=1;i<=n;i++) printf("%d ",f[i]);
		printf("\n");
		return;
	} 
	for(int i=1;i<=n;i++){
		if(v[i]==0){
			v[i]=1;
			f[step]=val[i]; 
			dfs(step+1);
			v[i]=0;
		} 
	}
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&val[i]);
	sort(val+1,val+n+1); 
	dfs(1);
}

/**************************************************************
	Problem: 1685
	User: admin
	Language: C++
	Result: Accepted
	Time:46 ms
	Memory:2080 kb
****************************************************************/