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

struct s
{
    int mnIndex;
    int mxIndex;
};

int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n;
    cin >> n;
    vector<int> v(n);
    vector<s> brojevi(10,{-1,-1});
    for (int i=0;i<n;i++)
    {
        cin >> v[i];
        if(brojevi[v[i]].mnIndex==-1)
            brojevi[v[i]].mnIndex=i;
        else
            brojevi[v[i]].mxIndex=i;
    }
    for (int i=0;i<10;i++)
        if(brojevi[i].mxIndex==-1)
            brojevi[i].mxIndex=brojevi[i].mnIndex;
    bool promena=false;
    int index=INT_MAX;
    for (int i=9;i>=1;i--)
    {
        index=INT_MAX;
        for (int j=i-1;j>=0;j--)
            if(brojevi[j].mnIndex!=-1)
                index=min(index,brojevi[j].mnIndex);
        if(brojevi[i].mxIndex>index)
        {
            swap(v[brojevi[i].mxIndex],v[index]);
            promena=true;
            break;
        }
    }
    if(promena==false)
    {
        for (int i=0;i<10;i++)
            if(brojevi[i].mnIndex<brojevi[i].mxIndex)
            {
                promena=true;
                break;
            }
    }
    if(promena==false)
        swap(v[n-2],v[n-1]);
    for (int i=0;i<n;i++)
        cout << v[i] << " ";
}