#include <iostream>
#include <vector>
using namespace std;

int main()
{
    
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    int prekid=n;
    vector<int> A(n);
    vector<int> ZadnjiUnerastucem(10);
    bool ponavljanje=false;
    for(int i=0;i<n;i++){
        cin>> A[i];
    }
    for(int i=9;i>A[0];i--) ZadnjiUnerastucem[i]=0;
    for(int i=1;i<n;i++){
        if(A[i]==A[i-1]) ponavljanje=1;
        if(A[i]>A[i-1]){
            prekid=i;
            break;
        }
        for(int j=A[i-1];j>A[i];j--) ZadnjiUnerastucem[j]=i;
    }
    int maxx=-1,maxp=-1;
    for(int i=prekid;i<n;i++){
        if(maxx<=A[i]){
            maxp=i;
            maxx=A[maxp];
        }
    }
    if(maxx==-1){
        if(!ponavljanje){
            int h=A[n-1];
            A[n-1]=A[n-2];
            A[n-2]=h;
        }
    }
    else{
        int h=A[ZadnjiUnerastucem[maxx]];
        A[ZadnjiUnerastucem[maxx]]=A[maxp];
        A[maxp]=h;
    }
    for(int i=0;i<n;i++)
        cout<< A[i] << ' ';
    cout <<endl;
    return 0;
}