#include <bits/stdc++.h>

using u32 = unsigned int;

u32 nadji_max(short* knjige, u32 start, u32 n)
{
	u32 mx = start;
	for (u32 i = start; i < n; ++i)
		if (knjige[i] > knjige[mx])
			mx = i;
	return mx;
}

int main()
{
	u32 n;
	short knjige[1'000'000];
	std::scanf("%u", &n);

	for (u32 i = 0; i < n; ++i)
		std::scanf("%hu", &knjige[i]);

	if (n == 2)
	{
		std::printf("%hu %hu", knjige[1], knjige[0]);
		return 0;
	}

	if (true || n <= 8)
	{
		bool swapped = false;
		for (int i = 0; !swapped && i < n - 1; ++i)
		{
			u32 max;
			max = nadji_max(knjige, i, n);
			if (knjige[i] < knjige[max])
			{
				knjige[i] = std::exchange(knjige[max], knjige[i]);
				swapped = true;
			}
		}
		if (swapped)
			for (u32 i = 0; i < n; ++i)
				std::printf("%hu ", knjige[i]);
		else
		{
			knjige[n - 2] = std::exchange(knjige[n - 1], knjige[n - 2]);
			for (u32 i = 0; i < n; ++i)
				std::printf("%hu ", knjige[i]);
		}
		return 0;
	}

}