#include<stdio.h>
#define MAX 100000

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

int main(){
  int n,i,m;

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

  m=partition(0,n-1);

  for(i=0;i<n;i++){
    if(i>0) printf(" ");
    if(i==m) printf("[");
    printf("%d",a[i]);
    if(i==m) printf("]");
  }
  printf("\n");

  return 0;
}

int partition(int x,int y){
  int l,m,i,j;
  l=a[y];
  i=x-1;
  for(j=x;j<y;j++){
    if(a[j]<=l){
      i++;
      m=a[i];
      a[i]=a[j];
      a[j]=m;
    }
  }
  m=a[i+1];
  a[i+1]=a[y];
  a[y]=m;
  
  return i+1;
}

