package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n, m, d int
if _, err := fmt.Fscan(in, &n, &m, &d); err != nil {
return
}
total := n * m
arr := make([]int, total)
for i := 0; i < total; i++ {
fmt.Fscan(in, &arr[i])
}
rem := arr[0] % d
for i := 1; i < total; i++ {
if arr[i]%d != rem {
fmt.Fprintln(out, -1)
return
}
}
for i := 0; i < total; i++ {
arr[i] /= d
}
sort.Ints(arr)
median := arr[total/2]
var moves int64
for i := 0; i < total; i++ {
diff := median - arr[i]
if diff < 0 {
diff = -diff
}
moves += int64(diff)
}
fmt.Fprintln(out, moves)
}