#include<stdio.h>
int partition(int a[],int p,int r) {
	int x=a[r];
	int i=p-1,j,mid;
	for(j=p; j<r; j++) {
		if(a[j]<=x) {
			i++;
			mid=a[i];
			a[i]=a[j];
			a[j]=mid;
		}
	}
	mid=a[i+1];
	a[i+1]=a[r];
	a[r]=mid;
	return i+1;
}
int main() {
	int n,k,w;
	scanf("%d",&n);
	int a[n];
	for(k=0; k<n; k++)
		scanf("%d",&a[k]);
	w=partition(a,0,n-1);
	for(k=0; k<n; k++) {
		if(k>0)
			printf(" ");
		if(k==w)
			printf("[%d]",a[k]);
		else
			printf("%d",a[k]);
	}
	printf("\n");
	return 0;
}
