#include<stdio.h>
#define N 10000
int A[N];
int x;
int i, j;

int partition(int *A, int p, int r){

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

int main(){

  int p = 0;
  int n;

  scanf("%d", &n);

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

  x = partition(A, 0, n-1);

  for(i = 0; i < x; i++){
	printf("%d ", A[i]);
  }
  printf("[%d] ",A[x]);

  for(i = x+1; i < n-1; i++){
	printf("%d ", A[i]);
  }
  printf("%d\n", A[n-1]);

  return 0;
}