#include <iostream>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

long int niz[1000000];

int main()
{
    int n, maxPoz, i, zamena=0;

    scanf("%d", &n);

    for(i=0; i<n; i++)
        scanf("%ld", &niz[i]);

    maxPoz=n-1;
    for(i=n-2; i>0; i--)
        if(niz[i]>niz[maxPoz] && niz[i]>niz[i-1])
            maxPoz=i;
    for(i=0; i<maxPoz; i++)
        if(niz[i]<niz[maxPoz])
        {
            int pom=niz[i];
            niz[i]=niz[maxPoz];
            niz[maxPoz]=pom;
            zamena=1;
            break;
        }

        if(!zamena)
        {
            int pom=niz[maxPoz];
            niz[maxPoz]=niz[maxPoz-1];
            niz[maxPoz-1]=pom;
        }

        for(i=0; i<n; i++)
            printf("%ld ", niz[i]);

    return 0;
}