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

using namespace std;

int main()
{
    long N;
    scanf("%ld", &N);
    long* niz = (long*) malloc(sizeof(long) * N);

    long najveci = -1;
    long prvi;
    long index;

    scanf("%ld", &prvi);
    niz[0] = prvi;
    for(int i = 1; i < N; i++)
    {
        scanf("%ld", &niz[i]);
        if(niz[i] >= najveci)
        {
            index = i;
            najveci = niz[i];
        }
    }
    if(N == 2)
    {
        printf("%ld %ld",niz[1], niz[0]);
        return 0;
    }
    else
    {

        if(najveci > prvi)
        {
            niz[0] = najveci;
            niz[index] = prvi;
            for(long i = 0; i < N; i++)
            {
                printf("%ld ",niz[i]);
            }
            return 0;
        }
        else
        {
            bool gotovo = false;
            for(long i = 0; i <= index; i++)
            {
                if(!gotovo)
                {
                    if(niz[i] < najveci)
                    {
                        long temp = niz[index];
                        niz[index] = niz[i];
                        niz[i] = temp;
                        gotovo = true;
                    }
                }
                printf("%ld ", niz[i]);
            }
            for(long i = index + 1; i < N; i++)
            {
                if(!gotovo)
                {
                    long temp = niz[i];
                    niz[i] = niz[i + 1];
                    niz[i + 1] = temp;
                }
                printf("%ld ", niz[i]);
            }
        }
    }
}