#include <bits/stdc++.h>

using namespace std;

int niz[1000000];

int main ()
{
	int n;
	cin>>n;
	for(int i=0; i<n; i++)
	{
		cin>>niz[i];
	}
	if(n==2) swap(niz[1], niz[0]);
	else
	{
		int raste=0, opada=0;
		for(int i=0; i<n-1; i++)
		{
			if(niz[i]<niz[i+1]) raste++;
			else opada++;
		}
		int p=-1, k=-1;
		if(raste>opada)
		{
			for(int i=0; i<n-1; i++)
			{
				if(niz[i]>niz[i+1])
				{
					p=i;
					break;
				}
			}
			if(p==-1) p=n-1;
			for(int i=p+1; i<n-1; i++)
			{
				if(niz[i-1]>niz[i])
				{
					k=i;
					break;
				}
			}
			if(k==-1) k=n-1;
			swap(niz[p], niz[k]);
		}
		else
		{
			for(int i=0; i<n-1; i++)
			{
				if(niz[i]<niz[i+1])
				{
					p=i;
					break;
				}
			}
			if(p==-1) p=n-1;
			for(int i=p+1; i<n-1; i++)
			{
				if(niz[i]>niz[i+1])
				{
					k=i;
					break;
				}
			}
			if(k==-1) k=n-1;
			swap(niz[p], niz[k]);
		}
		if(p==k) swap(niz[1], niz[0]);
	}
	for(int i=0; i<n; i++)
		cout<<niz[i]<<" ";
}