#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int n;
	cin>>n;
	int a[n]; // массив для перестановки из n чисел
	for (int i = 0; i < n; i++) cin>> a[i];
	for (int i = n - 2; i >= 0; i--) { 
		if (a[i] < a[i+1]){
			int min = i + 1; // индекс минимального элемента 
			for (int j = i + 2; j < n; j++) {
				if (a[j] > a[i] && a[j] < a[min]) min = j;
			}
			swap(a[i], a[min]);
			reverse(&a[i+1], &a[n]);
			break;
		}
		if (i == 0) reverse(&a[i], &a[n]);
	}
	for (int i = 0; i < n; i++) cout << a[i] << " ";
	return 0;
}