#include<iostream>
#include<algorithm>
using namespace std;


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

int main(){
	int n;
	cin>>n;

	int A[100000];
	for(int i=0;i<n;i++){
		cin>>A[i];
	}
	int q=partition(A,0,n-1);
	for(int i=0;i<n;i++){
		if(i==q){
			cout<<'['<<A[i]<<']';
		}else{
			cout<<A[i];
		}
		if(i<n-1){
			cout<<' ';
		}else{
			cout<<endl;
		}
	}
	return 0;
}