using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace OneCompiler
{
public class Program
{
public static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int[] arr = Array.ConvertAll(Console.ReadLine().Split(" "), new Converter<string,int>(StringToInteger));
var nextPermutation = NextPermutation(arr);
for (int i = 0; i < nextPermutation.Length; i++)
{
Console.Write(nextPermutation[i] + " ");
}
}
private static int StringToInteger(string s)
{
return int.Parse(s);
}
private static int[] NextPermutation(int[] arr)
{
int n = arr.Length;
if (n == 0 || n == 1)
{
return arr;
}
int i, j;
for (i = n - 2; i >= 0; i--)
{
if (arr[i] < arr[i + 1])
{
break;
}
}
if (i < 0)
{
Array.Reverse(arr);
return arr;
}
else
{
for (j = n - 1; j > i; j--)
{
if (arr[j] > arr[i])
{
break;
}
}
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
Array.Reverse(arr, i + 1, n - i - 1);
return arr;
}
}
}
}