#include <bits/stdc++.h>
using namespace std;
//https://www.geeksforgeeks.org/largest-number-with-one-swap-allowed/
bool najveci(int niz[], int n){
    int maks_cifra = -1;
    int maks_cifra_index = -1;
    int l_index = -1;
    int r_index = -1;
    for(int i=n-1;i>=0;i--){
        if(niz[i]>maks_cifra){
            maks_cifra = niz[i];
            maks_cifra_index = i;
            continue;
        }
        if(niz[i]<maks_cifra){
            l_index = i;
            r_index = maks_cifra_index;
        }
    }
    if(l_index==-1){
        return false;
    }
    swap(niz[l_index], niz[r_index]);
    return true;
}

int main()
{
    int n;
    cin >> n;
    int niz[n];
    for(int i=0;i<n;i++){
        cin >> niz[i];
    }
    if(najveci(niz,n)){
    for(int i=0;i<n;i++){
        cout << niz[i] << " ";
    }
    }
    else{
        swap(niz[n-2],niz[n-1]);
        for(int i=0;i<n;i++){
        cout << niz[i] << " ";
    }
    }

    return 0;
}