#include <bits/stdc++.h>

using namespace std;

int main()
{
    int N, A;
    cin >> N;
    vector<int> v(N);
    set<int> unikati;
    for(int i = 0; i < N; i++)
    {
        cin >> A;
        v[i] = A;
        unikati.insert(A);
    }

    bool zamenjen = false;
    for(auto it = unikati.rbegin(); it != unikati.rend(); it++)
    {
        int i1 = N - 1;
        int i2 = 0;
        int max = *it;
        while(v[i1] != max)
        {
            i1--;
        }
        while(v[i2] >= max && i2 < N)
        {
            i2++;
        }

        if(i1 < i2)
        {
            continue;
        }
        int tmp = v[i1];
        v[i1] = v[i2];
        v[i2] = tmp;
        zamenjen = true;
        break;
    }

    if(!zamenjen)
    {
        for(int i = 1; i < N; i++)
        {
            if(v[i - 1] == v[i])
            {
                zamenjen = true;
                break;
            }
        }
    }
    if(!zamenjen)
    {
        int tmp = v[N - 2];
        v[N - 2] = v[N - 1];
        v[N - 1] = tmp;
    }

    for(int x : v)
    {
        cout << x << " ";
    }


    return 0;
}