#include <stdio.h>
#include <utility>
using namespace std;
int a[1000000];
pair<int,int> b[1000000];
int main(int argc, const char * argv[]) {
    int n;
    bool pom=false;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    b[n-1].first=n-1;
    b[n-1].second=a[n-1];
    for(int i=n-2;i>=0;i--)
    {
        if(a[i]>b[i+1].second)
        {
            b[i].first=i;
            b[i].second=a[i];
        }
        else
        {
            b[i].first=b[i+1].first;
            b[i].second=b[i+1].second;
        }
    }
    for(int i=0;i<n-1;i++)
    {
        if(a[i]!=b[i].second)
        {
            swap(a[i],a[b[i].first]);
            pom=true;
            break;
        }
    }
    if(!pom)
    {
        for(int i=0;i<n && i<10;i++)
        {
            for(int j=i+1;j<n && j<11;j++)
            {
                if(a[i]==a[j])
                {
                    swap(a[i], a[j]);
                    pom=true;
                }
            }
        }
        if(!pom)
            swap(a[n-2],a[n-1]);
    }
    for(int i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}