import bisect N,K,P = list(map(int,input().split())) A = list(map(int,input().split())) B = list(map(int,input().split())) A.sort() B.sort() def check(n): count = 0 for i in A: left = bisect.bisect_left(B, P-i) right = bisect.bisect_right(B, n+P-i) count += right - left right2 = bisect.bisect_right(B, n-i) count += right2 return count >= K ng,ok = -1,P-1 while(ok - ng > 1): mid = (ok+ng)//2 if(check(mid)): ok = mid else: ng = mid print(ok)