#include <bits/stdc++.h> 
using namespace std;

void merge(int arr[], int l, int m, int r) 
{ 
    int i, j, k; 
    int n1 = m - l + 1; 
    int n2 =  r - m; 
  
    int L[n1], R[n2]; 
  
    for (i = 0; i < n1; i++) 
        L[i] = arr[l + i]; 
    for (j = 0; j < n2; j++) 
        R[j] = arr[m + 1+ j]; 
  
    
    i = 0; 
    j = 0;
    k = l; 
    while (i < n1 && j < n2) 
    { 
        if (L[i] <= R[j]) 
        { 
            arr[k] = L[i]; 
            i++; 
        } 
        else
        { 
            arr[k] = R[j]; 
            j++; 
        } 
        k++; 
    } 
  
    while (i < n1) 
    { 
        arr[k] = L[i]; 
        i++; 
        k++; 
    } 
  
    while (j < n2) 
    { 
        arr[k] = R[j]; 
        j++; 
        k++; 
    } 
} 

void mergeSort(int arr[], int l, int r) 
{ 
    if (l < r) 
    { 
         
        int m = l+(r-l)/2; 
        mergeSort(arr, l, m); 
        mergeSort(arr, m+1, r); 
  
        merge(arr, l, m, r); 
    } 
}
int main()
{
	int n;
	cin>>n;
	int a[n],b[n];
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		b[i]=a[i];
	}
	int br=0;
	mergeSort(b,0,n-1);
	reverse(b,b+n);
	for(int i=0;i<n;i++)
	{
		if(a[i]!=b[i])br++;
	}
	int k=0;
	int niz[10];
	for(int i=0;i<10;i++)
	{
		niz[i]=0;
	}
	int l=0;
	if(br==0)
	{
		for(int i=0;i<n;i++)
		{
			niz[a[i]]++;
		}
		for(int i=0;i<10;i++)
		{
			if(niz[i]>1)l++;
		}
		if(l==0)swap(a[n-2],a[n-1]);
	}
	else
	{
		for(int i=0;i<n;i++)
		{
			if(a[i]!=b[i])
			{
				for(int j=n-1;j>-1;j--)
				{
					if(a[j]==b[i])
					{
						swap(a[i],a[j]);
						break;
					}
				}
				break;
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
}