#include <iostream>
#define  MAX 1000001
using namespace std;
int niz[MAX];
int cifre[10],poslednjePojavljivanjeCifre[10];
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n;
    int ponavljanje=0;
    cin >> n;
    for(int i=0;i<n;i++)
    {
        cin>>niz[i];
    }
    for(int i=0;i<n;i++)
    {
        cifre[niz[i]]++;
        poslednjePojavljivanjeCifre[niz[i]]=i;
        if(cifre[ niz[i] ]>1)
            ponavljanje=1;
    }
    int cifra=9;
    int LMAOOVAJINDEKS=0;
    for(int i=0;i<n;i++)
    {
        while(cifra>=0 && cifre[cifra]==0)
            cifra--;
        if(niz[i]==cifra)
        {
            cifre[cifra]--;
        }
        else
        {
            LMAOOVAJINDEKS=i;
            break;
        }
    }
    
    int f = niz[ poslednjePojavljivanjeCifre[cifra] ];
    if(niz[LMAOOVAJINDEKS]>f)
    {
        if(!ponavljanje)
        {
            f= niz[n-1];
            niz[n-1]=niz[n-2];
            niz[n-2]=f;
        }
    }
    else
    {
        niz[ poslednjePojavljivanjeCifre[cifra] ] = niz[LMAOOVAJINDEKS];
        niz[ LMAOOVAJINDEKS ] = f;
    }
    for(int i=0;i<n;i++)
    {
        cout<<niz[i]<<" ";
    }
    return 0;
}
/*
6
9 4 6 7 6 7
7
8 8 6 7 8 8 7
*/