#include <iostream>
#include <cmath>
#include <iomanip>
#include <climits>
#include <vector>
#include <set>
#include <algorithm>
#include <numeric>
#include <map>
using namespace std;
const int MOD = 1000000007;
int main() {
int n, x;cin >> n >> x;
vector<int>v;
for (int i = 1;i <= n;i++) {
int value;cin >> value;
v.push_back(value);
}
// capture list
// []: Không lấy giá trị nào bên ngoài
// [=]: lấy tất cả giá trị bên ngoài ở dạng pass by value, giá trị
// [&]: lấy tất cả giá trị bên ngoài ở dạng pass by reference, tham chiếu
// [x]: lấy x dạng pass by value
// [&x]: lấy x dạng pass by ref
sort(v.begin(), v.end(), [x](const int& a, const int& b) {
int da = abs(a - x);
int db = abs(b - x);
if (da != db) {
return da < db;
}
return a < b;
});
for (auto value : v) {
cout << value << " ";
}
cout << endl;
sort(v.begin(), v.end(), [](const int& a, const int& b) {
if (a % 2 == 0 && b % 2 == 0) {
return a < b;
}
if (a % 2 == 0 && b % 2 != 0) {
return true;
}
if (a % 2 != 0 && b % 2 != 0) {
return a > b;
}
if (a % 2 != 0 && b % 2 == 0) {
return false;
}
});
for (auto value : v) {
cout << value << " ";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxtYXA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTU9EID0gMTAwMDAwMDAwNzsKCgppbnQgbWFpbigpIHsKCWludCBuLCB4O2NpbiA+PiBuID4+IHg7Cgl2ZWN0b3I8aW50PnY7Cglmb3IgKGludCBpID0gMTtpIDw9IG47aSsrKSB7CgkJaW50IHZhbHVlO2NpbiA+PiB2YWx1ZTsKCQl2LnB1c2hfYmFjayh2YWx1ZSk7Cgl9CgoJLy8gY2FwdHVyZSBsaXN0CgkvLyBbXTogS2jDtG5nIGzhuqV5IGdpw6EgdHLhu4sgbsOgbyBiw6puIG5nb8OgaQoJLy8gWz1dOiBs4bqleSB04bqldCBj4bqjIGdpw6EgdHLhu4sgYsOqbiBuZ2/DoGkg4bufIGThuqFuZyBwYXNzIGJ5IHZhbHVlLCBnacOhIHRy4buLCgkvLyBbJl06IGzhuqV5IHThuqV0IGPhuqMgZ2nDoSB0cuG7iyBiw6puIG5nb8OgaSDhu58gZOG6oW5nIHBhc3MgYnkgcmVmZXJlbmNlLCB0aGFtIGNoaeG6v3UKCS8vIFt4XTogbOG6pXkgeCBk4bqhbmcgcGFzcyBieSB2YWx1ZQoJLy8gWyZ4XTogbOG6pXkgeCBk4bqhbmcgcGFzcyBieSByZWYKCXNvcnQodi5iZWdpbigpLCB2LmVuZCgpLCBbeF0oY29uc3QgaW50JiBhLCBjb25zdCBpbnQmIGIpIHsKCQlpbnQgZGEgPSBhYnMoYSAtIHgpOwoJCWludCBkYiA9IGFicyhiIC0geCk7CgkJaWYgKGRhICE9IGRiKSB7CgkJCXJldHVybiBkYSA8IGRiOwoJCX0KCQlyZXR1cm4gYSA8IGI7Cgl9KTsKCglmb3IgKGF1dG8gdmFsdWUgOiB2KSB7CgkJY291dCA8PCB2YWx1ZSA8PCAiICI7Cgl9Cgljb3V0IDw8IGVuZGw7CgoJc29ydCh2LmJlZ2luKCksIHYuZW5kKCksIFtdKGNvbnN0IGludCYgYSwgY29uc3QgaW50JiBiKSB7CgkJaWYgKGEgJSAyID09IDAgJiYgYiAlIDIgPT0gMCkgewoJCQlyZXR1cm4gYSA8IGI7CgkJfQoJCWlmIChhICUgMiA9PSAwICYmIGIgJSAyICE9IDApIHsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCWlmIChhICUgMiAhPSAwICYmIGIgJSAyICE9IDApIHsKCQkJcmV0dXJuIGEgPiBiOwoJCX0KCQlpZiAoYSAlIDIgIT0gMCAmJiBiICUgMiA9PSAwKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9KTsKCglmb3IgKGF1dG8gdmFsdWUgOiB2KSB7CgkJY291dCA8PCB2YWx1ZSA8PCAiICI7Cgl9Cn0KCgo=