#include <bits/stdc++.h>
using namespace std;

int ponavlja(int a[], int n)
{
    int i;
    int n1;
    n1 = n;
    int a1[n1];
    for(i = 0; i < n1; i++) a1[i] = a[i];
    for(i = 0; i < n1; i++)
    {
        if(a1[abs(a1[i])] > 0)
            a1[abs(a1[i])] = -a1[abs(a1[i])];
        else
            return 1;
    }

    return 0;
}

int main()
{
    int n,i;
    cin >> n;
    int a[n];
    for(i = 0;i < n;i++) cin >> a[i];
    int najveci = -1;
    int najveci_indeks = -1;
    int l_indeks = -1;
    int d_indeks = -1;
    for(i = n-1;i >= 0;i--){
        if(a[i] > najveci){
            najveci = a[i];
            najveci_indeks = i;
        }

        if(a[i] < najveci){
            l_indeks = i;
            d_indeks = najveci_indeks;
        }
    }
    if(l_indeks != -1) swap(a[l_indeks],a[d_indeks]);

    if(l_indeks == -1){
      if(ponavlja(a,n) == 1){
        for(i = 0;i < n;i++) cout << a[i] << " ";
        return 0;
      }

       swap(a[n-1],a[n-2]);
    }

    for(i = 0;i < n;i++) cout << a[i] << " ";
}