#include <stdio.h>
#define Alen 2000000

void SwapElement(int *A,int i, int j){
  int tmp = A[i];
  A[i] = A[j];
  A[j] = tmp;
}

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

int main(){
  int n,i,q;
  int A[Alen];
  
  scanf("%d",&n);
  for(i=0; i<n; i++){
    scanf("%d",&A[i]);
  }
  
    q = Partition(A,0,n-1);
    
    for(i=0; i<n; i++){
      if(i==q)printf("[");
      printf("%d",A[i]);
      if(i==q)printf("]");
      if(i!=n-1)printf(" ");
    }
    printf("\n");
    return 0;
}

