#include<bits/stdc++.h>
using namespace std;
struct Node{
    public:
    int data;
    Node* next;
    
    public:
    Node(int data1,Node* next1)
    {
        data=data1;
        next=next1;
    }
};
int main()
{
    
    int n;
    cin >> n;
    
    vector<int> arr(n);
    
    for(int i=0;i<n;i++)
    cin >> arr[i];
    
    vector<vector<int>> ans;
    int size=1;
    for(int i=1;i<=n;i++)
    {
        size*=i;
    }
    
    for(int i=0;i<size;i++)
    {
        ans.push_back(next_permutation(arr.begin(),arr.end()));
    }
    
    for(auto &it:ans)
    {
        for(auto a:it)
        {
            cout<<a<<" ";
        }cout<<endl;
    }
}