#include <iostream>
#include <sstream>
#include <vector>


using namespace std;

int main()
{
	vector <int> niz;
	vector <int> max;
	vector <int> polozaj;
	vector <int> izlaz;
	int n, i, m, p;
	bool kraj;
	cin >> n;
	niz.resize(n + 1);
	max.resize(n + 1);
	polozaj.resize(n + 1);
	izlaz.resize(n + 1);
	for (i = 1; i <= n; i++)
		cin >> niz[i];
	izlaz = niz;
	m = -1;
	for (i = n; i >= 1; i--) {
		if (m < niz[i])
		{
			m = niz[i];
			p = i;
		}
		max[i] = m;
		polozaj[i] = p;
	}
	kraj = false;
	for (i = 1; i <= n; i++) {
		if (!kraj && niz[i] != max[i]) {
			izlaz[i] = max[polozaj[i]]; 
			izlaz[polozaj[i]] = niz[i]; 
			kraj = true;
		}
		if (!kraj && i == (n-1))
		{
			izlaz[i] = niz[i+1]; 
			izlaz[i+1] = niz[i]; 
			kraj = true;
		}
	}
	for (i = 1; i <= n; i++)
		cout << izlaz[i]<<' ';
}