#include <bits/stdc++.h>
using namespace std;
int a[2005], b[2005];
int n, m, p;
long long mem[2005][2005];
long long go(int x, int y) {
  if (x >= n) return 0;
  if (y >= m) return (1LL << 50);
  if (mem[x][y] != -1) return mem[x][y];
  return mem[x][y] =
             min(max(go(x + 1, y + 1), 0LL + abs(a[x] - b[y]) + abs(b[y] - p)),
                 go(x, y + 1));
}
int main() {
  cin >> n >> m >> p;
  int i;
  for (i = 0; i < n; i++) cin >> a[i];
  for (i = 0; i < m; i++) cin >> b[i];
  sort(a, a + n);
  sort(b, b + m);
  memset(mem, -1, sizeof mem);
  cout << go(0, 0) << endl;
  return 0;
}
