← Home
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)
}