#include <iostream>
using namespace std;
short niz[1000000];
bool jednak;
int met(int ind,int n)
{
    int a=niz[ind];
    int ind2=-1;
    for(int i=ind+1;i<n;i++)
        if(niz[i]>a)
            {
                ind2=i;
                a=niz[i];
            }
            else if(niz[i]==a)
                jednak=true;
    if(ind2!=-1)
        {
            int pom=niz[ind2];
            niz[ind2]=niz[ind];
            niz[ind]=pom;
        }

    return ind2;
}


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    jednak=false;
    long n;
    cin>>n;
    for(int j=0;j<n;j++)
        cin>>niz[j];

    int a=-1;

    for( int i=0;i<10&&i<n;i++)
        if (a==-1)
            a=met(i,n);
        else
            break;
        if(a==-1&&!jednak)
        {
            int pom=niz[n-1];
            niz[n-1]=niz[n-2];
            niz[n-2]=pom;

        }

     for(int j=0;j<n;j++)
        cout<<niz[j]<<" ";
}