#include <stdio.h>

int A[100000];

int Partition(int A[], int p, int r) {
	int x,i,j,tmp;
	x = A[r];
	i = p - 1;
	for (j = p; j < r ; j++) {
		if (A[j] <= x) {
			i++;
			tmp = A[i];
			A[i] = A[j];
			A[j] = tmp;
		}
	}
	tmp = A[i + 1];
	A[i + 1] = A[r];
	A[r] = tmp;
	return i + 1;
	
}

int main() {

	int i,n,q;
	scanf("%d", &n);

	for (i = 0; i < n; i++) scanf("%d", &A[i]);

	q = Partition(A, 0, n - 1);

	for (i = 0; i < q; i++) printf("%d ", A[i]);

	printf("[%d]", A[q]);

	for (i = q + 1; i < n; i++) printf(" %d", A[i]);

	printf("\n");

	return 0;
}
