#include<stdio.h>

#define MAX 100000
int partition(int [],int,int );

int A[MAX];

int main(){
	int n,i,j,q;

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

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

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

	return 0;

}

int partition(int A[],int p,int r){
	int i,j,x,t;
x=A[r];
i=p-1;

for(j=p;j<r;j++){
	if(A[j]<=x){
		i++;
		t=A[i];
		A[i]=A[i];
		A[j]=t;
	}
}

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

return i+1;
}