#include <stdio.h>

#define MAX 100000

int Partition(int*, int ,int);

int main ()
{

  int i,ans,num,A[MAX];

  scanf("%d",&num);


  for(i=0;i<num;i++)
    {
      scanf("%d",&A[i]);
    }
  ans =  Partiton(A,0,num-1);

  for(i=0;i<num;i++){
    if(i) printf("");
    if(i == ans){
      printf("[");
      printf("%d ",A[i]); 
    }  
    if(i == ans){
      printf("]",A[i]);
      printf("\n");

    }
  }

  return 0;
}


int Partiton(int A[],int p, int r)
{
  int x,i,j,tmp;
  
  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;
}