#include <stdio.h>
#define MAX 100000
int A[MAX],n;

int main(){
  int i,k;

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

  k=partition(0,n-1);

  for(i=0;i<n;i++){
    if(i) printf(" ");
    if(i==k) printf("[");
    printf("%d",A[i]);
    if(i==k) printf("]");
  }
  printf("\n");
  return 0;
}

int partition(int k,int m){
  int i,j;
  int t;
  int x=A[m];
  i=k-1;
  for(j=k;j<m;j++){
    if(A[j]<=x){
      i++;
      t=A[i];A[i]=A[j];A[j]=t;
    }
  }
  t=A[i+1];A[i+1]=A[m];A[m]=t;
  return i+1;
}

