#include <bits/stdc++.h>

using namespace std;

inline void ispis(const vector<int>& a){
for (int i=0;i<a.size();i++)
        cout << a[i] << ' ';
    cout << endl;
}

int main()
{
    int n,g,zamena=0,poz1=-1,poz2;
    bool sortiran=true;
    cin >> n;
    vector <int> a;
    cin >> g;
    a.push_back(g);
    for (int i=1;i<n;i++){
        cin >> g;
        a.push_back(g);
        if (a[i]>a[i-1] || (poz1!=-1 && a[i]==a[i-1])){
            sortiran=false;
            if (poz1==-1){
            poz1=i-1;
            }
            if(a[i]>=zamena){
                zamena=a[i];
                poz2=i;
            }
            }
    }
    if (sortiran){
        a[0] ^= a[1];
        a[1] ^= a[0];
        a[0] ^= a[1];
        ispis(a);
    } else{
    for (int i=0;i<=poz1;i++)
        if (a[i]<zamena){
            a[i] ^= a[poz2];
            a[poz2] ^= a[i];
            a[i] ^= a[poz2];
            ispis(a);
            break;
        }
    }
    return 0;
}