#include<stdio.h>
#include<stdlib.h>

int *A;
int num;

int partition(int p,int r);

int main(void)
{
  int q;
  int i;

  scanf("%d",&num);

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

  q=partition(0,num-1);

  for(i=0;i<num;i++)
    {
      if(i)
	{
	  putchar(' ');
	}
	
      if(i==q)
	{
	  putchar('[');
	}

      printf("%d",A[i]);
	
      if(i==q)
	{
	  putchar(']');
	}
    }

  putchar('\n');

  return 0;
}

int partition(int p,int r)
{
  int tmp,x;
  int i,j;

  x=A[r];
  i=p-1;

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

	  tmp=A[i];
	  A[i]=A[j];
	  A[j]=tmp;
	}
    }

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

  return i+1;
}
      
	    

