#include <stdio.h>
int partition(int a[],int l,int r)
{
	int i,j,t,p=l-1,q=l,k=a[r];
	for(;q<r;q++)
	if(a[q]<=k)
	{
		p++;
		t=a[q];
		a[q]=a[p];
		a[p]=t;
	}
	t=a[q];
	a[q]=a[++p];
	a[p]=t;
	return p;
}

int main(int argc, char *argv[])
{
	int n,i,a[100000],s;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);
	s=partition(a,0,n-1);
	for(i=0;i<n;i++)
	{
		if(i==s)
		printf("[%d]",a[i]);
		else
		printf("%d",a[i]);
		if(i+1==n)
		printf("\n");
		else 
		printf(" ");
	}
	return 0;
}
