#include <bits/stdc++.h>
using namespace std;
int n, k, p;
vector<int> a;
vector<int> b;
bool isPossible(long long T) {
int j = 0;
for (int i = 0; i < n; ++i) {
while (j < k && (abs(a[i] - b[j]) + abs(b[j] - p) > T)) {
++j;
}
if (j >= k) return false;
++j;
}
return true;
}
int main() {
cin >> n >> k >> p;
a.resize(n);
b.resize(k);
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = 0; i < k; ++i) cin >> b[i];
sort(a.begin(), a.end());
sort(b.begin(), b.end());
long long left = 0, right = 2e14, ans = 2e14;
while (left <= right) {
long long mid = (left + right) / 2;
if (isPossible(mid)) {
ans = mid;
right = mid - 1;
} else {
left = mid + 1;
}
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbiwgaywgcDsKdmVjdG9yPGludD4gYTsKdmVjdG9yPGludD4gYjsKCmJvb2wgaXNQb3NzaWJsZShsb25nIGxvbmcgVCkgewogICAgaW50IGogPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICB3aGlsZSAoaiA8IGsgJiYgKGFicyhhW2ldIC0gYltqXSkgKyBhYnMoYltqXSAtIHApID4gVCkpIHsKICAgICAgICAgICAgKytqOwogICAgICAgIH0KICAgICAgICBpZiAoaiA+PSBrKSByZXR1cm4gZmFsc2U7CiAgICAgICAgKytqOwogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCmludCBtYWluKCkgewoKICAgIGNpbiA+PiBuID4+IGsgPj4gcDsKICAgIGEucmVzaXplKG4pOwogICAgYi5yZXNpemUoayk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgY2luID4+IGFbaV07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGs7ICsraSkgY2luID4+IGJbaV07CgogICAgc29ydChhLmJlZ2luKCksIGEuZW5kKCkpOwogICAgc29ydChiLmJlZ2luKCksIGIuZW5kKCkpOwoKICAgIGxvbmcgbG9uZyBsZWZ0ID0gMCwgcmlnaHQgPSAyZTE0LCBhbnMgPSAyZTE0OwogICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHsKICAgICAgICBsb25nIGxvbmcgbWlkID0gKGxlZnQgKyByaWdodCkgLyAyOwogICAgICAgIGlmIChpc1Bvc3NpYmxlKG1pZCkpIHsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgICAgICByaWdodCA9IG1pZCAtIDE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbGVmdCA9IG1pZCArIDE7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K