#include <iostream>
using namespace std;

int main(int argc, char** argv) {
	
	int n;
	cin>>n;
	int a[n];
	
	int poz1=0;
	int poz2=0;
	
	int f=0;
	int k=0;
	int promena = 0;
	int posuda = 0;	
	int max1 = 0;
	int max2= 0;
	
	for(int i=0;i<n;i++){
		
		
		
		cin>>a[i];
		
		if(a[i]>=max1){
			
			max1=a[i];
			poz1 = i;	
		}
		if(a[i]>=max2 && a[i]<max1){
			
			max2=a[i];
			poz2 = i;	
		}
						
}
for(int i=1;i<n;i++){
	
	if(a[i-1]!=a[i]+1){
		
		k++;
		
	}
}

if(k==0){
	
	posuda = a[n-1];
	a[n-1]=a[n-2];
	a[n-2]=posuda;
	promena++;
}
else{

	if(n==2){
		
		posuda = a[0];
			a[0]=a[1];
			a[1]=posuda;
			promena++;
	}
	else{
		
			for(int i = 0;i<poz1;i++){
				
			if(a[i]<max1){
				
			posuda = a[i];
			a[i]=max1;
			a[poz1]=posuda;
			max1 = 0;
			f++;
			promena++;
			}	
				
			}
			if(f == 0){
				for(int i = poz1;i<poz2;i++){
				
			if(a[i]<max2){
				
			posuda = a[i];
			a[i]=max2;
			a[poz2]=posuda;
			max2 = 0;
			promena++;
			
			}
				
				
				
			}
			
		}
	}

	
	
	
	if(promena == 0){
	posuda = a[n-1];
	a[n-1]=a[n-2];
	a[n-2]=posuda;
	promena++;
		
		
	}
	
	

}
	for(int i=0;i<n;i++){
	
	cout<<a[i]<<' ';
	
	}
	return 0;
}