#include<stdio.h>

int partition(int[], int, int);

int partition(int A[], int p, int r)
{
  int x,i,j,temp;
  x = A[r];
  i = p-1;
  for( j = p ; j < r ; j++ ){
    if( A[j] <= x )
      {
      i++;
  temp = A[i];
  A[i] = A[j];
  A[j] = temp;
      }
  }
  temp = A[i+1];
  A[i+1] = A[r];
  A[r] = temp;
  return i+1;
}

int main()
{
  int n,i,q;
  scanf("%d",&n);
  int A[n];

  for( i = 0 ; i < n ; i++ )
    scanf("%d",&A[i]);

  q = partition(A,0,n-1);

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

    
  return 0;
}