def check(x): v = k+a[x] c = 1 i = 0 for j in range(n-2,-1,-1): if j==x: continue while i < n-1 and a[i] + a[j] <= v: i += 1 if i==x: i+=1 if i >= j: break c += 1 i += 1 return c <= m n,m,k,*a = map(int,open(0).read().split()) a.sort() ng = -1 ok = n-1 while ok-ng > 1: mid = (ok+ng)//2 if check(mid): ok = mid else: ng = mid a.append(-1) print(a[ok])