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

namespace Zad2
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string niz = Console.ReadLine();
            niz = niz.Replace(" ", "");
            if (n == 2)
            {
                Console.Write(niz[1] + " " + niz[0]);
            }
            else
            {
                string broj1 = najvecibroj(niz);
                for (int j = 0; j < broj1.Length; j++)
                {
                    Console.Write(broj1[j] + " ");
                }
            }
        }
        static String najvecibroj(String broj)
        {
            int n = broj.Length;
            int desni;
            int[] desniMax = new int[n];
            desniMax[n - 1] = -1;
            desni = n - 1;
            for (int i = n - 1; i >= 0; i--)
            { 
                if (broj[i] < broj[desni])
                    desniMax[i] = desni;
                else
                {
                    desniMax[i] = -1;
                    desni = i;
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (desniMax[i] != -1)
                {
                    broj = swap(broj, i, desniMax[i]);
                    break;
                }
            }
            return broj;
        }
        static String swap(String broj, int i, int j)
        {
            StringBuilder sb = new StringBuilder(broj);
            sb[i] = broj[j];
            sb[j] = broj[i];
            return sb.ToString();
        }
    }
}