#include <bits/stdc++.h>

using namespace std;

int niz[1000005];
int n;
void ispisi()
{
    for(int i=0;i<n;i++)
        cout<<niz[i]<<" ";
}


void zameni(int &x, int &y)
{
    int z = x;
    x = y;
    y = z;
}


int main()
{
    int max=0,max2=0,a,b;
    cin>>n;

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







    for(int i=n-1;i>=1;i--)
    {
        if(max==niz[i] && niz[i]>niz[0])
        {
            zameni(niz[i],niz[0]);
            ispisi();
            return 0;
        }
    }

    int pom = 0;


    for(int i=0;i<n-1;i++)
    {
        if(niz[i]<niz[i+1])
        {
            pom = 1;
            break;
        }
    }


    if(pom == 0)
    {
        zameni(niz[n-1],niz[n-2]);
        ispisi();
        return 0;
    }




    int i = 0;

    while(i!=n-2)
    {
        if(niz[i]<niz[i+1])
            break;
        i++;
    }

    for(int s = i;s<n;s++)
    {
        if(max2<=niz[s])
        {
            max2=niz[s];
            b = s;
        }

    }



    for(int x=0;i<b;x++)
    {
        if(max2>niz[x])
        {
            zameni(niz[x],niz[b]);
            ispisi();
            return 0;
        }
    }

























    return 0;
}