from bisect import bisect_right N, K, P = map(int, input().split()) A = tuple(int(x) % P for x in input().split()) B = sorted(int(x) % P for x in input().split()) def lower(x): ct = 0 for a in A: ct += bisect_right(B, x - a) + bisect_right(B, P + x - a) - bisect_right(B, P - a - 1) return ct l, r = 0, P while r - l > 1: m = (r + l) // 2 if lower(m) >= K: r = m else: l = m print(l + 1)