#include<stdio.h>

#define N 100000

int doPartition(int,int);

int n;
int A[N];

int main(){

  int i,c;
  
  scanf("%d",&n);

  for(i = 0;i < n;i ++)
    {
      scanf("%d",&A[i]);
    }
   
  c = doPartition(0,n - 1);
   
  for(i = 0;i<n - 1;i ++)
    {
      if(i == c)
	{
	  printf("[%d] ",A[i]);
	}
      else{
	printf("%d ",A[i]);
      }
    }
  
  printf("%d",A[n - 1]);

  printf("\n");

  return 0;
}

int doPartition(int p,int r){

  int i,j,x,y;

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

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