#include<stdio.h>
#define MAX 100000

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

	return i+1;
}
int main()
{	
	int i, n, idx;
	int A[MAX];
	scanf("%d", &n);

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

	idx = partition(A, 0, n-1);

	for(i = 0; i < n; i++) {
		if(i)
			printf(" ");
		if(i == n-1) {
			printf("%d\n", A[i]);
		}
		else {
			if(i == idx)
				printf("[");
			printf("%d", A[i]);
			if( i == idx)
				printf("]");
		}
	}

    return 0;
}