#include <stdio.h>

#define MAX 100000

int partition(int *,int, int);

int main(){
  int i,a[MAX],b,n;

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

  b=partition(a,0,n-1);
  
  for(i=0;i<n;i++){
   
    if(i==b){
      printf("[");
    }
    printf("%d",a[i]);
    if(i==b){
      printf("]");
    }
    if(i<n-1){
      printf(" ");
    }
  }
    printf("\n");
  
    return 0;
  }

  int partition(int a[],int p,int r){

    int x,i,j,c;

    x=a[r];
    i=p-1;
    for(j=p;j<=r-1;j++){
      if(a[j]<=x){
	i=i+1;
	c=a[i];
	a[i]=a[j];
	a[j]=c;
      }
    }
    c=a[i+1];
    a[i+1]=a[r];
    a[r]=c;

    return i+1;
  }

