#include <bits/stdc++.h>
using namespace std;
const long long N = 2e3 + 5;
long long n, k, p;
long long a[N], b[N];
long long cache[N][N];
long long dp(long long i, long long j) {
  if (i == n + 1) {
    return 0;
  }
  if (j == k + 1) {
    return 1000000000000000000;
  }
  if (cache[i][j] != -1) {
    return cache[i][j];
  }
  return cache[i][j] = min(dp(i, j + 1), max(abs(a[i] - b[j]) + abs(p - b[j]),
                                             dp(i + 1, j + 1)));
}
void TEST_CASE() {
  memset(cache, -1, sizeof(cache));
  cin >> n >> k >> p;
  for (long long i = 1; i < n + 1; i++) {
    cin >> a[i];
  }
  for (long long i = 1; i < k + 1; i++) {
    cin >> b[i];
  }
  sort(a + 1, a + n + 1);
  sort(b + 1, b + k + 1);
  cout << dp(1, 1) << "\n";
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) {
    TEST_CASE();
  }
  return 0;
}
