from collections import defaultdict import sys int1 = lambda x: int(x) - 1 # input = lambda: sys.stdin.buffer.readline() input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) i1 = lambda: int1(input()) mi = lambda: map(int, input().split()) mi1 = lambda: map(int1, input().split()) li = lambda: list(mi()) li1 = lambda: list(mi1()) lli = lambda n: [li() for _ in range(n)] INF = float("inf") # mod = int(1e9 + 7) mod = 998244353 N, M, k = mi() db = defaultdict(list) dr = defaultdict(list) for bb in sorted(li()): db[bb % k].append(bb) for rr in sorted(li()): dr[rr % k].append(rr) if N > M: db, dr = dr, db cost = 0 cnt = 0 for ky in db.keys(): if ky not in dr: print(-1) exit(0) x = db[ky] y = dr[ky] n = len(x) m = len(y) if n > m: print(-1) exit(0) dp = [INF] * (m + 1) dp[0] = 0 for i in range(n): nxt = [INF] * (m + 1) mn = INF for j in range(m): if mn > dp[j]: mn = dp[j] d = x[i] - y[j] if x[i] > y[j] else y[j] - x[i] nxt[j + 1] = mn + d dp = nxt cost += min(dp) print(cost // k)