from bisect import * N,K,P=map(int,input().split()) A=list(map(int,input().split())) A.sort() B=list(map(int,input().split())) B.sort() L,R=0,P while L>1 C=0 for i in range(N): if M>=A[i]: C+=bisect_right(B,M-A[i])+bisect_right(B,P+M-A[i])-bisect_left(B,P-A[i]) else: C+=bisect_right(B,P+M-A[i])-bisect_left(B,P-A[i]) if C>=K: R=M else: L=max(L+1,M) print(L)