#include<stdio.h>

#define MAX 100000

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

int main( void ){
	
	int n;
	int A[MAX];
	int q;
	
	scanf( "%d" , &n );
	
	for( int i = 0; i < n; i++ ){
		scanf( "%d" , &A[i] );
	}
	
	q = partition( A , 0 , n-1 );
	
	//printf( "%d\n" , A[q] );
	
	for( int i = 0; i < n; i++ ){
		
		if( i >= 1 ){ printf( " " ); }
		
		if( i == q ){
			printf( "[%d]" , A[i] ); 
		}else{ printf( "%d" , A[i] ); }
		
	}
	
	printf( "\n" );
	
}

