#include<bits/stdc++.h>

using namespace std;

int N,Niz2[1000010],Niz1[1000010],k,Niz3[1000010];

bool ima;

bool cmp(int a, int b)
{
    return a > b;
}

int main()
{
    //freopen("test.txt","r",stdin);
    //freopen("bad.txt","w",stdout);

    cin>>N;

    for(int i=1; i<=N; i++)
    {
        cin>>Niz1[i];
        Niz2[i]=Niz1[i];
        Niz3[Niz1[i]]++;
    }
        sort(Niz2+1,Niz2+1+N,cmp);

        for(int i=0; i<=9; i++)if(Niz3[i]>1)ima=true;

        int i;

        for(i=1; i<=N; i++)if(Niz1[i]<Niz2[i])break;

        if(i-1==N and ima==false)swap(Niz1[N],Niz1[N-1]);
        else
        {
            k=N;
            while(Niz1[k]!=Niz2[i])k--;
            swap(Niz1[k],Niz1[i]);
        }
        for(int i=1; i<=N; i++)cout<<Niz1[i]<<" ";

    return 0;
}