def compress(A): S = sorted(A) D = dict() for i in range(len(S)): D[S[i]] = i return D def func(P): R = [] IDX = set() for x in X: l, r = x-P, x+P if l < 0: R.append((l%L, 1)) IDX.add(l%L) l = 0 if L < r: R.append((0, 1)) IDX.add(0) R.append((r%L+0.5, -1)) IDX.add(r%L+0.5) r = L R.append((l, 1)) IDX.add(l) if r < L: R.append((r+0.5, -1)) IDX.add(r+0.5) IDX = compress(IDX) C = [0]*len(IDX) for n, d in R: C[IDX[n]] += d for i in range(1, len(IDX)): C[i] += C[i-1] return K <= min(C) for _ in range(int(input())): N, L, K = map(int, input().split()) X = list(map(int, input().split())) left = 0 right = (L+1)//2 while left+1 < right: mid = (left+right)//2 if not func(mid): left = mid else: right = mid print(right)