#include<stdio.h>
int A[100000];
int partition(int,int);
int main() {
	
	int n,i,p;
	
	scanf ("%d",&n);

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