#include "iostream"
using namespace std;

struct kandidat{
	unsigned int velicina;
	unsigned int pozicija;
};

int main(){
	int N;
	cin >> N;
	unsigned int A[N];
	struct kandidat K[10];
	int kN=1;
	
	bool trazi = true;
	
	int trazimo[10];
	
	int pozM=0;
	int max=0;
	
	cin >> A[0];
	
	K[0].velicina=A[0];
	K[0].pozicija = 0;
	
	bool faza = true;
	
	for(int i=1;i<N;i++){
		cin >> A[i];
		
		if(trazi){
			trazimo[A[i]]++;
			if(trazimo[A[i]]==2)
				trazi=false;
		}
		
		if(A[i]<K[kN].velicina){
			K[kN].velicina = A[i];
			K[kN].pozicija = i;
			kN++;
		}
		
		if(faza && A[i-1]<A[i])
			faza = false;
		
		if(!faza && max<=A[i]){
			max = A[i];
			pozM = i;
		}
		
	}
	int i=0;
	for(i=0;i<kN;i++){
		int r = K[i].velicina;
		int pa = K[i].pozicija;
		if(r<max){
			int k = A[pa];
			A[pa] = A[pozM];
			A[pozM] = k;
			break;
		}
	}
	
	if(faza && trazi){
		int k = A[N-1];
		A[N-1] = A[N-2];
		A[N-2] = k;
	}
	
	for(int i=0;i<N;i++)
		cout << A[i] << " ";
}