#include <stdio.h>

#define N 100000

int partition(int *,int,int);

int main(){
  int n,i,a[N],p;
  scanf("%d",&n);
  for(i=0; i<n; i++){
    scanf("%d",&a[i]);
  }
  p=partition(a,0,n-1);
  for(i=0; i<n-1; i++){
    if(i==p){
      printf("[%d] ",a[i]);
    }else{
      printf("%d ",a[i]);
    }
  }
  printf("%d\n",a[i]);
  return 0;
}

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

