package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func abs(x int) int {
if x < 0 {
return -x
}
return x
}
func main() {
in := bufio.NewReader(os.Stdin)
var n, m, d int
if _, err := fmt.Fscan(in, &n, &m, &d); err != nil {
return
}
size := n * m
a := make([]int, size)
for i := 0; i < size; i++ {
fmt.Fscan(in, &a[i])
}
rem := a[0] % d
for i := 1; i < size; i++ {
if a[i]%d != rem {
fmt.Println("-1")
return
}
}
sort.Ints(a)
median := a[size/2]
ans := 0
for _, val := range a {
ans += abs(val-median) / d
}
fmt.Println(ans)
}