#include <bits/stdc++.h>

using namespace std;
int N,razm;
pair<int , int> sortiran[1000007];
int niz[1000007];
bool prov;

bool comp(pair<int,int> A, pair<int,int> B){

    if(A.first > B.first)
        return true;
    else if(A.first == B.first)
        return A.second > B.second;
    else
        return false;
}
int main()
{
    cin >> N;
    for(int i = 0; i < N; i++){
        cin >> niz[i];
        sortiran[i].first = niz[i];
        sortiran[i].second = i;
    }

    sort(sortiran, sortiran+N, comp);

    for(int i = 0; i < N; i++){
        if(sortiran[i].second != i){
           razm = niz[i];
           niz[i] = niz[sortiran[i].second];
           niz[sortiran[i].second] = razm;
           prov = true;
           break;
        }
    }

    if(prov == false){
        for(int i = 1; i < N; i++){
            if(sortiran[i].first == sortiran[i-1].first)
                prov = true;
        }
        if(prov == false){
            razm = niz[N-2];
            niz[N-2] = niz[N-1];
            niz[N-1] = razm;
        }

    }

    for(int i = 0; i < N; i++){
        cout << niz[i] << " ";
    }
    return 0;
}