#include<iostream>
#define A 1000001
using namespace std;
int a[A],b[11];
int n,i;
int maxi(int x[],int y, int z)
{
	int i;
	int max=x[z];
	for(i=z+1;i<y;i++)
	{
		if(max<x[i])
		max=x[i];
	}
	return max;
}
int opadajuci(int x[],int y)
{
	int i;
	y--;
	for(i=0;i<y;i++)
	{
		if(x[i]<x[i+1])
		return 0;
	}
	return 1;
}
int provera(int x[])
{
	for(int i=0;i<10;i++)
	{
		if(x[i]>1)
		{
			return i;
		}
	}
	return 15;
}
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int m=0,y;
	cin >> n;
	for(i=0;i<n;i++)
	{
		cin >> a[i];
		if(a[i]>m)
		{
			m=a[i];
			y=i;
		}
		b[a[i]]++;
	}
	if(opadajuci(a,n)==1)
	{
		if(provera(b)==15)
		{
			int pom;
			pom=a[n-1];
			a[n-1]=a[n-2];
			a[n-2]=pom;
		}
	}
	else{
		int i1,i2,max1;
		for(i=0;i<n;i++)
		{
			if(a[i]<m)
			{
				i1=i;
				i=n;
			}
		}
		max1=maxi(a,n,i1+1);
		for(i=n-1;i>=i1;i--)
		{
			if(a[i]==max1)
			{
				i2=i;
				i=i1-1;
			}
		}
		int pom;
		pom=a[i2];
		a[i2]=a[i1];
		a[i1]=pom;
	}
	for(i=0;i<n;i++)
	{
		cout << a[i] << " ";
	}
}