import sys input = sys.stdin.readline from bisect import bisect,bisect_left N,K,P=map(int,input().split()) A=list(map(int,input().split())) B=list(map(int,input().split())) A.sort() B.sort() OK=P-1 NG=-1 while OK>NG+1: mid=(OK+NG)//2 ANS=0 for a in A: if a+B[0]<=mid: x=bisect(B,mid-a) y=bisect_left(B,P-a) ANS+=x+(N-y) elif (a+B[0])%P<=mid: x=bisect(B,mid-a+P) ANS+=x else: x=bisect_left(B,P-a) y=bisect(B,P+mid-a) ANS+=y-x #print(a,ANS) #print(mid,ANS) if ANS>=K: OK=mid else: NG=mid print(OK)