N,L = map(int,input().split()) K = int(input()) A = [0]+list(map(int,input().split()))+[L] N+=2 def check(X): # X以上のyokanを2個以上作れるか? r = 0 p = [-1]*N for l in range(N): while r < N and A[r]-A[l]= K+1) ok = 1 ng = L while ng - ok > 1: mid = (ok+ng)//2 if check(mid): ok = mid else: ng = mid print(ok)