from bisect import* n, k, p = map(int, input().split()) A = tuple(map(int, input().split())) B = sorted(map(int, input().split())) def test(x): cnt = 0 for a in A: cnt += bisect_right(B, x-a) cnt += bisect_right(B, p+x-a) - bisect_right(B, p-a-1) return cnt >= k ok = p ng = -1 while ok - ng > 1: mid = (ok + ng) // 2 if test(mid): ok = mid else: ng = mid print(ok)