#include <stdio.h>

#define MAX 100000
int A[MAX];

int partition(int p, int r){

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

	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(void){

	int i,n,r;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&A[i]);
	}
	
	r = partition(0, n-1);
	
	for(i=0;i<n;i++){
		if(i != 0){ printf(" "); }
		if(i == r) printf("[");
		printf("%d",A[i]);
		if(i == r) printf("]");
	}

	printf("\n");
	

return 0;

}

