import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] order = new int[n];
for(int i = 0;i<n;i++){
order[i] = sc.nextInt();
}
List<String>result = new ArrayList<>();
generateOrders(order,0,new Stack<>(),new StringBuilder(),result);
Collections.sort(result);
for(String s : result){
System.out.println(s);
}
}
public static void generateOrders(int[]order,int index,Stack<Integer>stack,StringBuilder currentOrder,List<String>result){
if(index==order.length&&stack.isEmpty()){
result.add(currentOrder.toString());
return;
}
if(index<order.length){
stack.push(order[index]);
generateOrders(order,index+1,stack,currentOrder,result);
stack.pop();
}
if(!stack.isEmpty()){
int top = stack.pop();
currentOrder.append(top).append(" ");
generateOrders(order,index,stack,currentOrder,result);
currentOrder.delete(currentOrder.length()-(top+" ").length(),currentOrder.length());
stack.push(top);
}
}
}