#include <iostream>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <numeric>
#include <vector>
#include <climits>
using namespace std;
long long mod = 1000000007;
// lamda expression
// [capture_list] (parameter list) -> <type> {
//
//
// }
// []: Không lấy giá trị nào từ bên ngoài
// [=]: lấy tấ cả bên ngoài bằng pass by value
// [&]: lấy tất cả bên ngoài bằng pass by ref
// [x]: bắt giá trị của biến x pass by value
// [&x]: bắt giá trị biến x bằng pass by ref
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, x;cin >> n >> x;
vector<int> v;
for (int i = 1;i <= n;i++) {
int value;cin >> value;
v.push_back(value);
}
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 << " ";
}
return 0;
};
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNsaW1pdHM+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgbW9kID0gMTAwMDAwMDAwNzsKCgovLyBsYW1kYSBleHByZXNzaW9uCgovLyBbY2FwdHVyZV9saXN0XSAocGFyYW1ldGVyIGxpc3QpIC0+IDx0eXBlPiB7Ci8vCi8vIAovLyB9CgovLyBbXTogS2jDtG5nIGzhuqV5IGdpw6EgdHLhu4sgbsOgbyB04burIGLDqm4gbmdvw6BpCi8vIFs9XTogbOG6pXkgdOG6pSBj4bqjIGLDqm4gbmdvw6BpIGLhurFuZyBwYXNzIGJ5IHZhbHVlCi8vIFsmXTogbOG6pXkgdOG6pXQgY+G6oyBiw6puIG5nb8OgaSBi4bqxbmcgcGFzcyBieSByZWYKLy8gW3hdOiBi4bqvdCBnacOhIHRy4buLIGPhu6dhIGJp4bq/biB4IHBhc3MgYnkgdmFsdWUKLy8gWyZ4XTogYuG6r3QgZ2nDoSB0cuG7iyBiaeG6v24geCBi4bqxbmcgcGFzcyBieSByZWYKCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgaW50IG4sIHg7Y2luID4+IG4gPj4geDsKICAgIHZlY3RvcjxpbnQ+IHY7CiAgICBmb3IgKGludCBpID0gMTtpIDw9IG47aSsrKSB7CiAgICAgICAgaW50IHZhbHVlO2NpbiA+PiB2YWx1ZTsKICAgICAgICB2LnB1c2hfYmFjayh2YWx1ZSk7CiAgICB9CiAgICBzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSwgW3hdKGNvbnN0IGludCYgYSwgY29uc3QgaW50JiBiKSB7CiAgICAgICAgaW50IGRhID0gYWJzKGEgLSB4KTsKICAgICAgICBpbnQgZGIgPSBhYnMoYiAtIHgpOwogICAgICAgIGlmIChkYSAhPSBkYikgewogICAgICAgICAgICByZXR1cm4gZGEgPCBkYjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGEgPCBiOwogICAgfSk7CiAgICBmb3IgKGF1dG8gdmFsdWUgOiB2KSB7CiAgICAgICAgY291dCA8PCB2YWx1ZSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CiAgICBzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSwgW10oY29uc3QgaW50JiBhLCBjb25zdCBpbnQmIGIpIHsKICAgICAgICBpZiAoYSAlIDIgPT0gMCAmJiBiICUgMiA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBhIDwgYjsKICAgICAgICB9CiAgICAgICAgaWYgKGEgJSAyID09IDAgJiYgYiAlIDIgIT0gMCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGEgJSAyICE9IDAgJiYgYiAlIDIgIT0gMCkgewogICAgICAgICAgICByZXR1cm4gYSA+IGI7CiAgICAgICAgfQogICAgICAgIGlmIChhICUgMiAhPSAwICYmIGIgJSAyID09IDApIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0pOwogICAgZm9yIChhdXRvIHZhbHVlIDogdikgewogICAgICAgIGNvdXQgPDwgdmFsdWUgPDwgIiAiOwogICAgfQogICAgcmV0dXJuIDA7Cn07Cg==