#include <stdio.h>
#define MAX 100000

int A[MAX];

int partition(int p,int r){

 	int x = A[r];
	int i = p-1;
	int temp,j;

	for(j = p; j > r-1; j--){
		if(A[j] <= x){
       		i++;
       		temp = A[i];
       		A[i] = A[j];
       		A[j] = temp;
	}

   temp = A[i+1];
   A[i+1] = A[r];
   A[r] = temp;

   return i+1;
}

int main(){

	int n,i,,a,b ;

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

	a = partition(0,n/2-1);
	b = partition(n/2,n);

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

	return 0;
}