#include<bits/stdc++.h>
#define MAXN (int)1e6+10
using namespace std;
int n;
int niz[MAXN];
int niz2[MAXN];
bool cmp(int a, int b)
{
    return a>b;
}
int main()
{
    cin >> n;
    for(int i=0;i<n;i++){cin >> niz[i];niz2[i]=niz[i];}
    if(n==2){cout << niz[1] << " " << niz[0]; return 0;}
    sort(niz2, niz2+n, cmp);
    int p = 0;
    while(niz[p]==niz2[p] && p<n)p++;
    if(p==n)
    {
        for(int i=0;i<n-2;i++)cout << niz[i] << " ";
        cout<< niz[n-1] << " " << niz[n-2];
        return 0;
    }
    int mx=-1;
    int idx=n;
    for(int i=n-1;i>=p;i--)
    {
        if(niz[i]>mx)
        {
            mx=niz[i];
            idx=i;
        }
    }
    niz[idx]=niz[p];
    niz[p]=mx;
    for(int i=0;i<n;i++)cout << niz[i] << " ";
    return 0;
}