#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
int A[100010];
int q;
void swap(int g,int y)
{
	int t;
	t=A[g];
	A[g]=A[y];
	A[y]=t;
	return;
}
void partition(int p,int r)
{
	int i,j,k,x;
	i=p-1;
	j=p;
	x=A[r];
	for(k=p;k<=r-1;k++)
	{
		if(x<A[j])
			j++;
		else
		{
			i++;
			swap(i,j);
			j++;
		}
	}
	swap(i+1,r);
	q=i+1;
	return;
}
int main()
{
	int n,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&A[i]);
	partition(1,n);
	for(i=1;i<=q-1;i++)
		printf("%d ",A[i]);
	printf("[%d]",A[q]);
	for(i=q+1;i<=n;i++)
		printf(" %d",A[i]);
	printf("\n");
	return 0;
}
