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

namespace polica
{
    class Program
    {
        static void Main(string[] args)
        {
            Int64 n = Int64.Parse(Console.ReadLine());
            Int64 i, j;
            Int64[] a = new Int64[n];
            var ul1 = Console.ReadLine().Split();
            for (i = 0; i < n; i++)
            {
                a[i] = Int64.Parse(ul1[i]);
            }
            if (n == 2)
            {
                Console.WriteLine("{0} {1}", a[1], a[0]);
            }
            else
            {
                Int64 br = 0, k1, k2=0;
                Int64 max = Int64.MinValue, imax = Int64.MinValue;
                Int64 maxprim = Int64.MinValue, imaxprim = Int64.MinValue;
                for (i = 0; i < n; i++)
                {
                    if (a[i] >= max)
                    {
                        max = a[i];
                        imax = i;
                        br++;
                    }
                    if (a[i] > maxprim)
                    {
                        maxprim = a[i];
                        imaxprim = i;
                    }
                }
                Int64 max2 = Int64.MinValue, imax2 = Int64.MinValue;
                Int64 max2prim = Int64.MinValue, imax2prim = Int64.MinValue;
                Int64 max2sec = Int64.MinValue, imax2sec = Int64.MinValue;
                if (imaxprim == 0)
                {
                    for (i = 1; i < n; i++)
                    {
                        if (a[i] <= max && a[i] > max2)
                        {
                            max2 = a[i];
                            imax2 = i;
                        }
                        if (a[i] < max && a[i] > max2prim)
                        {
                            max2prim = a[i];
                            imax2prim = i;
                        }
                        if (a[i] < max && a[i] >= max2sec)
                        {
                            max2sec = a[i];
                            imax2sec = i;
                        }
                    }
                    if (a[imax] != a[imax2])
                    {
                        if (n == 3)
                        {
                            Console.WriteLine("{0} {1} {2}", a[0], a[2], a[1]);
                        }
                        else
                        {
                            br = 0;
                            Console.Write("{0} ", a[imax]);
                            for (i = 1; i < n; i++)
                            {
                                if (a[i] == a[imax2] && i != imax2sec)
                                {
                                    Console.Write(a[i] + " ");
                                }
                                else
                                {
                                    if (br == 0)
                                    {
                                        Console.Write(a[imax2sec] + " ");
                                        br++;
                                        k2 = i;
                                    }
                                    else
                                    {
                                        if(i==imax2sec)
                                        {
                                            Console.Write(a[k2] + " ");
                                        }
                                        else
                                        {
                                            Console.Write(a[i] + " ");
                                        }
                                    }
                                }
                            }
                            Console.WriteLine();
                        }
                    }
                    else
                    {
                        if (br <= 2)
                        {
                            Console.Write("{0} {1} ", a[imaxprim], a[imax2]);
                            for (i = 2; i < n; i++)
                            {
                                if (i == imax2)
                                {
                                    Console.Write(a[1] + " ");
                                }
                                else
                                {
                                    Console.Write(a[i] + " ");
                                }
                            }
                            Console.WriteLine();
                        }
                        else
                        {
                            k1 = a[imax2prim];
                            a[imax2prim] = a[imax];
                            a[imax] = k1;
                            for (i = 0; i < n; i++)
                            {
                                Console.Write(a[i] + " ");
                            }
                            Console.WriteLine();
                        }
                    }
                }
                else
                {
                    Console.Write("{0} ", a[imax]);
                    for (i = 1; i < n; i++)
                    {
                        if (i == imax)
                        {
                            Console.Write(a[0] + " ");
                        }
                        else
                        {
                            Console.Write(a[i] + " ");
                        }
                    }
                    Console.WriteLine();
                }
            }
        }
    }
}