#include<iostream>
#include<algorithm>
#include<cstdio>

using namespace std;

int n,niz[1000005],kn,mx,mxi;
//map<int,int> m;

int main()
{
//    freopen("test.in","r",stdin);
//    freopen("test.out","w",stdout);
    cin>>n;
//    n=1000000;
//    cin>>niz[1];
    scanf("%d",&niz[1]);
//    niz[1]=9;
    for(int i=2;i<=n;i++){
//        cin>>niz[i];
        scanf("%d",&niz[i]);
//        niz[i]=9;
//        niz[999999]=8;
        if(kn==0 && niz[i]>niz[i-1])
        {
            kn=i-1;
        }
        else if(kn==0 && i==n)
        {
            kn=n;
        }
        if(kn!=0 && niz[i]>=mx)
        {
            mx=niz[i];
            mxi=i;
        }
    }
    if(kn==n)
    {
        for(int i=2;i<=n;i++)
        {
            if(niz[i]==niz[i-1])
            {
                swap(niz[i],niz[i-1]);
                for(int i=1;i<=n;i++) printf("%d ",niz[i]);
                return 0;
            }
        }
        swap(niz[n],niz[n-1]);
        for(int i=1;i<=n;i++) printf("%d ",niz[i]);
        return 0;
    }
    for(int i=1;i<=kn;i++){
        if(niz[i]<niz[mxi])
        {
            swap(niz[i],niz[mxi]);
            for(int i=1;i<=n;i++) printf("%d ",niz[i]);
            return 0;
        }
    }
    return 0;
}