package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func abs64(x int64) int64 {
if x < 0 {
return -x
}
return x
}
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n, k int
var p int64
if _, err := fmt.Fscan(in, &n, &k, &p); err != nil {
return
}
a := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &a[i])
}
b := make([]int64, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &b[i])
}
sort.Slice(a, func(i, j int) bool { return a[i] < a[j] })
sort.Slice(b, func(i, j int) bool { return b[i] < b[j] })
const INF int64 = 1 << 60
prev := make([]int64, k+1)
cur := make([]int64, k+1)
for j := 0; j <= k; j++ {
prev[j] = 0
}
for i := 1; i <= n; i++ {
cur[0] = INF
for j := 1; j <= k; j++ {
t1 := cur[j-1]
cost := abs64(a[i-1]-b[j-1]) + abs64(b[j-1]-p)
val := prev[j-1]
if cost > val {
val = cost
}
if val < t1 {
cur[j] = val
} else {
cur[j] = t1
}
}
prev, cur = cur, prev
}
fmt.Fprintln(out, prev[k])
}