#include<bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

using namespace std;

typedef long long ll;
typedef unsigned long long ull;

int n;
bool zameni, imaistih;
vector<int> niz1;
vector<pair<int, int> > niz2;
int main() {
    IOS; cin >> n;
    for(int i=0; i<n; ++i) {
        int br; cin >> br;
        niz1.push_back(br); niz2.push_back(make_pair(br, i));
    }
    sort(niz2.begin(), niz2.end(),
    [](const pair<int, int>& A, const pair<int, int>& B) {
        if(A.first>B.first) return true;
        if(A.first<B.first) return false;
        return A.second>B.second;
    });
    for(int i=0; i<n; ++i) {
        if(niz1[i] != niz2[i].first) {
            zameni = true;
            swap(niz1[i], niz1[niz2[i].second]);
            break;
        }
    }
    if(!zameni) {
        for(int i=1; i<n; ++i) {
            if(niz2[i].first == niz2[i-1].first) {
                imaistih = true;
                break;
            }
        }
        if(!imaistih) swap(niz1[n-2], niz1[n-1]);
    }
    for(auto x:niz1) cout << x << ' ';
    return 0;
}