#include <iostream>

using namespace std;

int main()
{
    int n,i, maksimum=-1, pozicija=-1, j, b=0, jednako=0;
    cin>>n;
    int niz[n];

    for(i=0; i<n; i++)
    {
        cin>>niz[i];
    }

    for(i=0; i<n-1; i++)
    {
        if((maksimum==-1)||(pozicija<=i))
        {
            pozicija=-1;
            maksimum=-1;
            for(j=n-1; j>i; j--)
            {
                if(niz[j]>maksimum)
                {
                    maksimum=niz[j];
                    pozicija=j;
                }
            }
        }
        if(maksimum>niz[i])
        {
            niz[pozicija]=niz[i];
            niz[i]=maksimum;
            b=1;
            break;
        }
        if(maksimum==niz[i])
        {
            jednako=1;
        }
    }
    if((b!=1)&&(jednako==0))
    {
        maksimum=niz[n-1];
        niz[n-1]=niz[n-2];
        niz[n-2]=maksimum;
    }
    for(i=0; i<n; i++)
    {
        cout<<niz[i]<<" ";
    }
    cout<<endl;
    return 0;
}