#include<stdio.h>

void partition(int,int);

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





  void partition(int p,int r){
    int x,j,k;
    x=A[r];
    i=p-1;
    for(j=p;j<r;j++){
      if(A[j]<=x){
	i=i+1;
	k=A[i];
	A[i]=A[j];
	A[j]=k;
      }
    }
    k=A[i+1];
    A[i+1]=A[r];
    A[r]=k;
    i+=1;
  }
  

