#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN = 100007;
int a[MAXN];
int partition(int a[], int l, int r){
	int tmp = a[r];
	int i = l-1;
	for(int j = 0; j < r; j++){
		if(a[j]<=tmp){
			i++;
			swap(a[i], a[j]);
		}
	}
	swap(a[i+1], a[r]);
	return i+1;
}
int main(){
	int n;
	scanf("%d", &n);
	for(int i = 0; i < n; i++){
		scanf("%d", &a[i]);
	}
	int y = partition(a, 0, n-1);
	for(int i = 0; i < n; i++){
		if(i != 0){
			printf(" ");
		}
		if(i == y){
			printf("[%d]", a[i]);
		}else{
			printf("%d", a[i]);
		}
	}
	printf("\n");
	return 0;
}
