using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Zadatak2Takmicenje
{
    class Program
    {
        static void Main(string[] args)
        {
            
            int n = int.Parse(Console.ReadLine());
            string unos = Console.ReadLine();
            string[] brojevi = unos.Split(' ');
            int temp = 0;
            int index = 0;
            bool haveTo = true;

            int[] indexi = new int[n];
            int[] sortirani_indexi = new int[n];

            for (int i = 0; i < n; i++)
            {
                indexi[i] = int.Parse(brojevi[i]);
            }

            for (int i = 0; i < n; i++)
            {
                sortirani_indexi[i] = int.Parse(brojevi[i]);
            }

            Array.Sort(sortirani_indexi);
            Array.Reverse(sortirani_indexi);
            

            for (int i = 0; i < indexi.Length; i++)
            {
                if (indexi[i] != sortirani_indexi[i])
                {
                    haveTo = false;
                    temp = indexi[i];
                    index = Array.IndexOf(indexi, sortirani_indexi[i]);
                    indexi[i] = sortirani_indexi[i];
                    indexi[index] = temp;
                    break;
                }

            }
            if (haveTo)
            {
                temp = indexi[n - 1];
                indexi[n - 1] = indexi[n - 2];
                indexi[n - 2] = temp;
            }

            foreach (int num1 in indexi)
            {
                Console.Write(num1 + " ");
            }

            //Console.WriteLine();

            //foreach (int num2 in sortirani_indexi)
            //{
            //    Console.Write(num2 + " ");
            //}

            Console.ReadKey();
        }
    }
}