#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
auto max_poz_cifre = vector<int>(10);
vector<int> unete_cifre;
int n;
void nadji_i_premesti() {
	for (int i = 0; i < n; i++)
	{
		int tr_cifra = unete_cifre[i];
		for (int j = 9; j > tr_cifra; j--)
		{
			if (max_poz_cifre[j] > i) //Cifra je desno od trenutne i veca
			{
				int temp = unete_cifre[i];
				unete_cifre[i] = unete_cifre[max_poz_cifre[j]];
				unete_cifre[max_poz_cifre[j]] = temp;
				return;
			}
		}
	}
}

void ispisi_cifre() {
	ios::sync_with_stdio(false);
	for (int cifra : unete_cifre) {
		cout << cifra << " ";
	}
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cin >> n;
	unete_cifre = vector<int>(n);
	for (int i = 0; i < n; i++)
	{
		int uneta_cifra;
		cin >> uneta_cifra;
		unete_cifre[i] = uneta_cifra;
		max_poz_cifre[uneta_cifra] = max(max_poz_cifre[uneta_cifra], i);
	}
	nadji_i_premesti();
	ispisi_cifre();
	return 0;
}