#include <iostream>
#include <vector>
using namespace std;
void tabswap(vector<int> &a, int x, int &k, int &m) {
int t = 0;
k = -1;
m = a.size();
while (t < m) {
if (a[t] > x) {
m--;
swap (a[t], a[m]);
}
else {
if (a[t] < x) {
k++;
swap(a[k], a[t]);
}
t++;
}
}
}
int main() {
int n;
cin >> n;
vector <int> a(n, 0);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int k = 0;
int m = 0;
int x;
cin >> x;
tabswap(a, x, k, m);
for(int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
cout << "k = " << k << " m = " << m << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgdGFic3dhcCh2ZWN0b3I8aW50PiAmYSwgaW50IHgsIGludCAmaywgaW50ICZtKSB7CglpbnQgdCA9IDA7CglrID0gLTE7CgltID0gYS5zaXplKCk7Cgl3aGlsZSAodCA8IG0pIHsKCQlpZiAoYVt0XSA+IHgpIHsKCQkJbS0tOwoJCQlzd2FwIChhW3RdLCBhW21dKTsKCQl9IAoJCWVsc2UgewoJCQlpZiAoYVt0XSA8IHgpIHsKCQkJCWsrKzsKCQkJCXN3YXAoYVtrXSwgYVt0XSk7CgkJCX0gCgkJCXQrKzsKCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJaW50IG47CgljaW4gPj4gbjsKCQoJdmVjdG9yIDxpbnQ+IGEobiwgMCk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWNpbiA+PiBhW2ldOwoJfQoJaW50IGsgPSAwOwoJaW50IG0gPSAwOwoJaW50IHg7CgljaW4gPj4geDsKCQoJdGFic3dhcChhLCB4LCBrLCBtKTsKCQoJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWNvdXQgPDwgYVtpXSA8PCAiICI7Cgl9Cgljb3V0IDw8IGVuZGw7CgkKCWNvdXQgPDwgImsgPSAgIiA8PCBrIDw8ICIgbSA9ICAiIDw8IG0gPDwgZW5kbDsKCQoJcmV0dXJuIDA7Cn0=