#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    long long int N;
    cin>> N;
    long long int niz[N];
    long long int i;
    int c;
    int b=0;
    int x=0;
    int y=0;
    long long int q;
    int nizz[2];
    for(i=0; i<N; i++)
    {
        cin >> niz[i];
    }
    if (N==2)
    {
        c=niz[1];
        niz[1]=niz[0];
        niz[0]=c;
        cout << niz[0]<<" " << niz[1];
        exit(1);
    }
ponovo:
    for (i=0; i<(N-1); i++)
    {
        if(niz[i]>niz[i+1])
        {
            y++;

        }
        else if(niz[i]<niz[i+1])
        {
            x++;

        }
        else if(niz[i]==niz[i+1])
        {
            b++;
        }
    }
    if(y==(N-1))
    {
        for (i=0; i<N; i++)
        {
            cout << niz[i];
            cout << " ";
        }
        exit(2);
    }
    else if(x==(N-1))
    {
        for (i=0; i<N; i++)
        {
            cout << niz[i];
            cout << " ";
        }
        exit(3);
    }
    else if (y==2)
    {
        for(i=0; i<N; i++)
        {
            if(niz[i]>niz[i+1])
            {
                nizz[0]=niz[i];
                niz[i]=-1;
                q=i;
                break;
        }

    }
        for(i=q;i<N;i++){
                if(niz[i]>niz[i+1])
            {
                nizz[1]=niz[i+1];
                niz[i+1]=nizz[0];
                break;
        }

        }
        for(i=0;i<N;i++){
            if(niz[i]==-1){
                niz[i]=nizz[1];
                break;
            }

        }
    }
    else if (x==2){
        for(i=0; i<N; i++)
        {
            if(niz[i]<niz[i])
            {
                nizz[0]=niz[i];
                niz[i]=-1;
                q=i;
                break;
        }

    }
        for(i=q;i<N;i++){
                if(niz[i]<niz[i+1])
            {
                nizz[1]=niz[i+1];
                niz[i+1]=nizz[0];
                break;

        }
        }
        for(i=0;i<N;i++){
            if(niz[i]==-1){
                niz[i]=nizz[1];
                break;
            }

        }
    }
    else if(b==N)
    {
        c=niz[1];
        niz[1]=niz[0];
        niz[0]=c;
    }
    else if((b+x)==N)
    {
        for (i=0; i<N; i++)
        {
            if(niz[i]==niz[i+1])
            {
                c=niz[i];
                niz[i]=niz[i+1];
                niz[i+1]=c;
                break;
            }

        }
    }
    else if((b+y)==N)
    {
        for (i=0; i<N; i++)
        {
            if(niz[i]==niz[i+1])
            {
                c=niz[i];
                niz[i]=niz[i+1];
                niz[i+1]=c;
                break;
            }

        }
    }

    else if ((b+y)!=N)
    {
        for(i=0; i<N; i++)
        {
            if(niz[i]<niz[i+1])
            {
                c=niz[i];
                niz[i]=niz[i+1];
                niz[i+1]=c;
                break;
            }
        }
    }
    else if ((b+x)!=N)
    {
        for(i=0; i<N; i++)
        {
            if(niz[i]>niz[i+1])
            {
                c=niz[i];
                niz[i]=niz[i+1];
                niz[i+1]=c;
                break;
            }
        }
    }
    for (i=0; i<N; i++)
    {
        cout << niz[i];
        cout << " ";
    }
    return 0;
}