#include <iostream>

using namespace std;

/*int Nadjimaks (int niz[], int brojelemenata)
{
    int maks = niz[0];
    for (int i = 1; i < brojelemenata; i++)
    {
        if (niz[i] > maks)
        {
            maks = niz[i];
        }
    }
    return maks;
}*/
void Sortiraj(unsigned long int niz[], unsigned long int brojelemenata)
{
    unsigned long int temp;
    for (unsigned long int i = 0; i < brojelemenata - 1; i++)
    {
        for (unsigned long int j = i + 1; j < brojelemenata; j++)
        {
            if (niz[i] < niz[j])
            {
                temp = niz[i];
                niz[i] = niz[j];
                niz[j] = temp;
            }
        }
    }
}

int main()
{
    unsigned long int N;
    cin >> N;
    unsigned long int A[N];
    unsigned long int A1[N];
    unsigned long int temp;
    unsigned long int vrednoststarog, pozicijastarog;
    unsigned long int brojac = 0;
    for (unsigned long int i = 0; i < N; i++)
    {
        cin >> A[i];
        A1[i] = A[i];
    }
    Sortiraj(A1, N);
    for (unsigned long int i = 0; i < N; i++)
    {
        if (A[i] == A1[i])
        {
            brojac++;
        }
    }
    if (brojac == N)
    {
        temp = A[N - 1];
        A[N - 1] = A[N - 2];
        A[N - 2] = temp;
    }
    else
    {
        for (unsigned long int i = 0; i < N - 1; i++)
        {
            if (A[i] <= A1[i])
            {
                vrednoststarog = A1[i];
                pozicijastarog = i;
                break;
            }
        }
        for (unsigned long int i = 0; i < N; i++)
        {
            if (A[i] == vrednoststarog)
            {
                temp = A[i];
                A[i] = A[pozicijastarog];
                A[pozicijastarog] = temp;
            }
        }
    }
    for (unsigned long int i = 0; i < N; i++)
    {
        cout << A[i] << " ";
    }
}