#include <iostream>
using namespace std;

int main()
{
	int i, j, N, maxI, pom = 1, zam = 0;
	
	cin >> N;
	int niz[ N ];
	
	for( i = 0; i < N; ++i )
	{
		cin >> niz[ i ];
		
		if( i )
		{
			if( niz[ i ] > niz[ i - 1 ] )
				pom = 0;	
		} 
	}
		
	if( pom )
	{
		for( i = 0; i < N - 1; ++i )
			if( niz[ i ] == niz[ i + 1] )
				goto label1;
		
		
		pom = niz[ N - 1 ];
		niz[ N - 1 ] = niz[ N - 2];
		niz[ N - 2 ] = pom;
	}
	else
	{
		  for( i = 0; i < N - 1; ++i )
		  {
			maxI = i + 1;
			for( j = i + 1; j < N; ++j)
				if( niz[ j ] > niz[ maxI ] )
					maxI = j;
			
			if( niz[ i ] < niz[ maxI ] )
			{
				pom = niz[ i ];
				niz[ i ] = niz[ maxI ];
				niz[ maxI ] = pom;
			 	zam = 1;
			}
			
			if( zam )
			 break;
			
		  }
	}
	
	label1:
	
	for( i = 0; i < N; ++i )
		cout << niz[ i ] << " ";
	
	return 0;
}